Sorry -- I guess I'm on a roll since we just returned last weekend... We checked into snorkeling before we left and when we got there (took our own gear with us...)
Firstly, to our knowledge there's little or no snorkeling on the north end, unless you hire a boat ($40 USD +) to take you further out into the bay... Most of the snorkeling is found centro or south of the island...
Per my earlier posts, we stayed in the Centro location (at Casa Ixchel) and had immediate access to snorkeling / coral reefs only meters form the hotel, at no cost, since we brought our own gear... You can enter the beach from the street, so you would have access to this area regardless of where you stay... Just hop a taxi to the Ixchel, or Turquesa, which is the same location, and walk to the shore...
We did walk form our hotel to Punta Sur and Garrafon, so I can answer your questions... Paying for Garrafon is a rip-off... They make you pay a lot up front (around $50USD for access, gear, etc.) AND make you wear a crazy life jacket to boot... The Garrafon Castille next door is very run down, but has access to the same snorkeling area as the Park at fraction of the cost... It will cost you $30 pesos to access the hotel, bar and showers; and scheduled fees for towel ($20 pesos) and snorkel gear ($50? pesos) rental, a much better bargain, but recognize it is run by locals and is way passed its prime...
But -- It is worth the access to Garrafon park just for the sigh itself... For $5USD pp, you gain access to the art garden, lower ocean cliffs, and the Ixchel ruins... A lovely tourist attraction... (if you went to Chichen Itza, however, this is a disaapointment)...
Hope this helps...