There is a huge amount of variation between languages, and little logic even within a language. You just have to learn the custom in each language. In Gaelic they say in Lewis but on the Highlands.
And you may think you say on for an island but I bet you don't say on Britain or on Ireland.
Yes, but neither Lewis nor Uist is an island. Lewis is half an island and Uist is a collection of islands. The problem is that they are often thought of islands, so you are bound to get both prepositions used. I bet that the majority of people who would say one way or the other would say they are both islands?