Thanks for the replies so far. I'm on a hostel budget though I guess I could spring for a hire car if it makes things that much easier even with no-one to share the cost with. I guess a concern is travelling all the way down to Mahahual and then finding the weather is too bad to dive before I have to leave again...
If you're on a hostel budget, you can definitely take buses into Mahahual/Xcalak, they just have very limited schedules. I think the Caribe bus into Xcalak only runs once a day, like very early in the morning. If you're in Bacalar and the weather is bad, 90% chance it's gonna be bad in Xcalak/Mahahual too. And vice-versa. Check windy.com for wind speeds. Anything in the mornings over 10 knots most likely means waves, chop and low visibility. 15 and above may mean port closure and no diving. Waves and chop are really only good for diving La Poza from XTC to see tarpon schools, bad for anywhere else.
I was told by a small one-man dive shop in Mérida that Chinchorro is really something special. And I plan to be a few days in Bacalar so, if time is flexible, it might not be too bad of a detour...
Chinchorro is cool, I've been several times but I don't really feel the need to go anymore, unless I do one of the croc trips from XTC. I like the reefs in Cozumel better.
Based upon the advice so far though, I'll definitely spend some time in Cozumel. I have heard that it's possible to avoid staying on the island and just popping over on dive boats though. Is this something you'd actually recommend? My travel vibe is much more 2nd class buses, $10 hostels and 3 MXN market tacos than cruise ships and fancy restaurants (although if there restaurants are good value as well as being just good I'm happy to pay $50+ for a decent meal).
I wouldn't stay in Playa. While it's a cool town, you have to take a round trip ferry ($20) every day. The earliest you can be in Cozumel is about 7:50, so you have to find a dive shop willing to work with you, since most leave at 7:30. There are definitely cheap hostels and airbnbs in Cozumel, pretty easy to find online. As are cheap tacos (away from the tourist traps).
Mahahual has some cheap hostels too. No hostels in Xcalak, but you can get a nice little private room/bath at Gallo's for $20 a night. It's a 5 minute walk to XTC, and since most of the dive master trainees stay near there, you'll probably be walking to the dive shop every morning with them.
I've been in touch with XTC but I think I might need a bit more infrastructure. Any more specific advice about Cozumel is very welcome as someone new to diving and, while I have decent Spanish and have travelled Mexico for a few months, I have little experience of this part of the country.
A 2 tank dive in Cozumel is going to run anywhere from $75-100, depending on the dive shop. Many dive shops are central and easy to hop on the boat with. Aldora will pick up at their pier downtown and Tres Pelicanos will give you a ride to the marina if you're at their shop early. There are several other dive shops that are central but I don't know their polices. There is a Cozumel subforum here you should search and then ask specific questions.