Cozumel, Roatan, Belize, great snorkeling. Belize, Roatan, and Costa Maya are great for the reef that is second only to the great barrier reef. Cozumel is your best for shopping. Belize is a tender port, so you may want to do your snorkeling there as most snorkeling excursions will pick you up at the ship (at least the ones through the cruise line). Roatan, if the weather is nice and you can get into Mahogany Bay, you can either walk or take the chair lift over to the beach area that Carnival built. It's really nice. If you go to Coxen Hole, the shopping outside the terminal area is better than inside the terminal area. Tabyana Beach is beautiful and there is a botanical garden tour there that is beautiful. Mexico has it's areas of crime, but so far, Cozumel, Costa Maya, Playa de Carmen, Progresso, have remained relatively safe.
If you could let us know what y'all really enjoy doing, we might be better able to help.
The only port I've been to is Cozumel, and it is fine the last time I went there (October of 2010). That of the ports that I have visited is a great port to do a beach day, and there are several to choose from. On my most recent trip, I went to Paradise Beach. Cabs should be lined up and waiting once you get off the ship and through the cruise terminal. I think it was about a $12-14 cab ride total for me just by myself. There's no entry fee for Paradise Beach, as the impression is you'll spend money while you're there. If I remember correctly, for $12, you can get unlimited use of their water park, beach mats, and snorkel equipment. Lounge chair use is $2. They have a restaurant and bar there on site, so you can order lunch there if you please.
As far as shopping or sightseeing, I haven't been to the other islands besides Cozumel, so I can't offer much help there.
2007 - Majesty of the Seas
2009 - Enchantment of the Seas
2010 - Freedom of the Seas
I can also second the idea of going to Paradise beach. I was there with my family last month and we had a great time! I would also recommend taking an excursion to Passion Island while in port at Cozumel. There are two ways to get there...by power catamaran (not a sailboat) or on the Twister. I have done both in the last month and highly recommend taking the Twister boat. It was a real hoot that can be enjoyed by anyone who enjoys getting wet. You do get jostled around a bit, but there were older folks on board (60's) who also seemed to have a great time. The beach there is beautiful and the trip is all inclusive, drinks and food included.
Yes, the Tulum/Xel-ha is fabulous! It is an all day adventure, but VERY well worth it. I think the teens will prefer Xel-ha, but the ruins are fantastic and the setting is absolutely beautiful. When I went, you could climb on all the ruins, but I've heard that you can't go on all of them now, not sure, though. Xel-ha is the best snorkeling I've done and now they have a water park area. I think everyone in the family would enjoy that excursion!