Don't bother with a snorkling tour in St Thomas , just take a taxi to Coki beach. Or ferry and taxi to St Jons Island. Check out " ports " board and get more info on St Johns and Trunk bay, there are detailed instructions and costs there for getting to these beaches( it is easy so don;t worry.
Princess Cays has some snorkling, we saw some fish, just can't say it was great, water was a bit cloudy the day we were there last time, and the time before it was clear, but , we found the bottom quite bare so not alot of fish hang out there.There were some though.
St Marten we went to Orient Bay beach, absolutely lovely, no snorkling though, may be take a snorkling tour on that stop.