Auf is and should be used for islands of any kind, as long as you’re talking about the island being an island.
Als wir auf Grönland an Land gegangen sind, …
Auf der Herreninsel steht ein Königsschloss.
Auf Malta kommen immer wieder Flüchtligsschiffe an.
Auf Kuba gibt es gute Zigarren.
Auf Lummerland gibt es zwei Berge, viele Tunnels und Gleise.
In is and should be used for countries of any kind, and also for expressing stuff that implies the thing you’re talking about is a country.
In Kuba herrscht seit gut fünfzig Jahren die »ewige Revolution«.
In Malta kann man sich die Staatsbürgerschaft kaufen.
In Lummerland heißt der König Alfons der viertel-vor-zwölfte.
In Neuseeland wurde der Herr der Ringe gedreht.
In England und in Irland wird auf der linken Straßenseite gefahren.
Taking the case of England and Ireland: Technically these are generalised names meaning Great Britain and Ireland (the island, not the republic) respectively. However, they are often also understood to mean England (not Scotland or Wales) and the Republic of Ireland, which disqualifies the use of auf, because both entities are not composed of one entire island.
Taking the case of New Zealand, I would use in when speaking about the country, i. e. both islands, while I would say auf der Nord-/Südinsel.
Cuba and Malta seem to work differently well with in in my ears; all examples I was trying to think of immediately suggested auf, but I’m fine with saying in the way I did just now.
Auf Haiti is wrong, though, because there’s also the Dominican Republic on the other half of the island Hispaniola. Auf Hispaniola works, while in Hispaniola is, of course, wrong.
Australia is considered a continent or a country, never an island. So even if you’re speaking about the islandic properties, use in:
Nur in Australien gibt es Kängurus.
Venice is not considered an island and thus uses in exclusively. Lindau, however, is both the name of the island and the name of the town, so auf Lindau expresses that you’re talking about the island borough of Lindau.