We are avid snorkelers. If you are looking to snorkel directly off of the beach, CSS has the best snorkeling since there are rocky outcroppings, sea grass, and other places that the fish like to hang out. However, if there is much wave action at all, the water will hit the cliffs and stir up the silt on the bottom, making it very hard to see anything. When we were at CSS last year for 10 days, we could only snorkel from the beach on 2 days due to limited visibility.
As far as the snorkel trips, they are fairly similiar. CSS takes you to a sunken ship in deep water, which is different than either CSA or CN, where you typically snorkel at much more shallow sites. There is also a shallower site towards Ochi that the CSS snorkel boat took us to. CSA and CN visit the same reefs on their snorkel boats. They are all perfectly nice, lots of fish variety and fairly healthy coral. However, it is not comparable to Grand Cayman or Belize. CN also has a snorkel spot right in Bloody Bay that is nice.
I can't speak to the others, but we had a great time snorkeling at CN. There are some reef areas and the aquatic life is excellent. My wife spotted a good size octopus when we were there in July. Very cool!
We love snorkelling and have snorkeled in Belize and other places in Mexico. We were pleasantly surprised that the snorkelling places that you're taken to while at CN are really quite good and we went almost every morning. I was happy to hear that snorkelling can be good too as CSS as we are planning to be there in late January.. Have fun!
We've been to both CN and CSS twice and found the snorkel trips to be much better at CN. More fish and more variety...saw rays, lobsters, octopus and other things than just fish, at CSS, only saw fish and weren't that impressed. Also, CN has a night one that was really cool.