Words describing periods of time should be simplified. Terms like ‘biweekly’ and ‘bimonthly’ should never be ambiguous, as they currently are. These and all other prefixes should always be given the same meaning.
First, the prefixes bi-, tri- quad-, quint-, sex-, sep- hex-, novem-, deka-, etc., should always mean that many parts within whatever root or noun follows such prefixes. For example, bicycle consists of one unit (a bike) and two parts (two wheels). Similarly, a hexagon consists of one unit (a shape) with eight parts (sides). Biannually and biyearly should always mean one unit (a year) and two parts (or two times (twice) within one year). Using this same logic, centannual should mean 100 times a year.
However, there are no prefixes that can really convey the idea of events happening less frequently than the unit of time they are referencing. But, because using one word to describe events that take place once every few years is very convenient and justifiable, one small workaround to the dearth of prefixes is to use the root “-ennial”, as is already, fortunately, the general convention. For example, centennial would mean once every hundred years, in contrast to centannual which would mean 100 times a year. Similarly, biennual would mean once every two years, while biannual would mean twice a year.
I don’t see how we could use the same, or any other, technique to do the same to describe things or events that take place once every two or more weeks, months, decades, centuries, etc. Such words just won’t sound right. The only way to communicate such ideas may be to just use a phrase like “once every two months”. However, it may be possible to use larger reference units of time with the prefixes we currently have available. For example, sexannually (six times per year) would mean the exact same thing as ‘once every two months’.