First let’s look at the word annual. It comes from the Latin word annus. Please spell that Latin word very carefully with two Ns. And always give it the short A sound you hear in ant.
Bi is also Latin and means two. Remember, we're bipeds who ride bicycles and use binoculars. So Biannual means twice a year, or every six months if you like.
Semi is another Latin based word and it means a half. Think of a semi circle. So semiannual also means twice a year. Bi or Semi, these prefixes are very similar but semi can also mean just partly or not completely. For example, semiconscious, semidarkness, semidetached, semifinal, and even a large semi-trailer truck.
So what’s a biennial? That's something that happens every two years.
Is a bimonthly magazine published twice a month or every second month? Actually it could be either. When you pay your year’s subscription you could get 6 copies or 24 copies. Now that’s what you call ambiguity.
These Latin based words can be confusing so save yourself some trouble and use “twice a year” or “every other year.” Those two phrases are made up of Old English words, not Latin words.
Botanists have slightly different interpretations of these words when explaining the life cycle of plants.