Take the ADO bus from Cancun aiport to Playa del Carmen. Spend the night (if you want). Take the ADO bus from Playa to Chetumal 4 1/2 hours for around $20-30 usd, I think.
Use Belize Transfers to pick you up in Chetumal, cross the border to Corozal, then Tropic Air to San Pedro.
Sounds hectic, but it's really not bad. Saves a ton of money. Use the search above and you'll see plenty of posts re: ADO & Cancun.
Good luck,
Amy