How did the word buoy come to be pronounced "BOO-ee" in most of the US? The British pronunciation "BOY" as in the word buoyancy or buoyant (which both countries pronounce the same) seems to be pretty straight-forward, so where did the US version come from?
So you have two possible origins, one originally pronounced [bɥi(ə)] (French) or [bœɛi] (Dutch), and the other [boi] (French) or [bœi] (Dutch), all of which could be Anglicised as either disyllabic [buwiː] (boo-ee) or monosyllabic [bɔɪ] (boy).
I suspect both pronunciations have been around for a while in English, and the colonial divide just drew a more distinct (regional) line between them.
One common 18th century pronunciation of buoy in England (and presumably also America), seems to have been bwoy (/bwɔɪ/). The book A Practical Grammar of English Pronunciation by Benjamin Humphrey Smart (London, 1810) says
I believe that this comment shows that both bwoy and boy were used in 1810 England. This pronunciation also explains why buoy is not spelled boy.
The 1892 International Webster's Dictionary gives both boy and bwoy as pronunciations.
It's not hard to imagine the pronunciation bwoy turning into boo-ee. But it's also possible that in 18th century England, besides the pronunciations boy and bwoy, there was a third, boo-ee, which now only survives in the U.S. I would tend to lean towards the theory that the boo-ee pronunciation was brought to American from England, because the OED gives a 1603 citation where the word is spelled "bowie", which seems to indicate that this pronunciation existed in England then.
Finally, addressing the question of which pronunciation of buoy is "correct"—according to Mr. Smart, we're all pronouncing it wrong.