ann an/ann am is just in. Historically it’s indeed something like there in, in-it in, or just double in-in – I think because single an (which comes from Old Irish i, a + eclipsis) got mixed with the article an (am bàta could mean both in a boat and the boat), so to disambiguate it people started saying ann am bàta.
On the other hand, before the definite article the preposition occurs only once: anns a’ bhàta (sa bhàta) for in the boat.
This doubling didn’t happen in Irish as the eclipsis is still a thing there, so there’s clear difference between i mbád /ə mɑːd/ and an bád /ə bɑːd/.
EDIT: and it seems Akerbeltz has generally the same explanation :)
EDIT2: I changed the example from pàirc park to bàta boat since the former is feminine and the example of definite article (
am pàirc) was wrong (it should be a’ phàirc; am bàta is OK).
Though, since Muile in Gaelic doesn’t take definite article and there is no ambiguity, I would guess that bha mi am Muile should be a reasonable shorter alternative to bha mi ann am Muile, similarly to how Akerbeltz claims an Glaschu exists for ‘in Glasgow’ as an alternative to longer ann an Glaschu.
Every islander I've ever met who says "on" either does it to be contrary (like Americans putting the "u" back in "colour") or they're not actually island natives. The folks in Stornoway, Tarbert, Lochmaddy, Lochboisdale, etc, will all happily correct folks from the mainland who call their family from the ferry terminals and use "on".