I've never been to Grand Cayman, but Cozumel is a great place to snorkel. Cab's are plentiful, and will take you anywhere you want to go.
Labadee isn't great for snorkeling, but obviously not a shopping spot either.
I would advise against going outside the port area in Jamaica on your own. Parts of the island are fine on your own, but the town of Falmout itself is pretty run down. The port area is very spacious, but is really just an extension of the ship and has all the standard-issue cruise port stores. There are also some local vendors allowed inside with crafts.