For Mexico, I'd recommend hiring a driver through your logistics company to pickup/dropoff at the airport. Servimont offers this. We took public buses from the airport to Tlachichuca and back and while the buses themselves were very nice, navigating the bus station and doing the bus transfer was tedious. It took us about 8-9 hours both ways. Mostly due to traffic jams on the highway. But it was also a lot of waiting time, it was an hour+ waiting for the bus at the airport, then an hour waiting to transfer buses in Puebla. I'd definitely recommend getting the first class bus from MEX to Puebla though, it was really nice and not that expensive at all. The bus leaving Tlachichuca was packed with students so we had to stand in the aisle for more than an hour. Getting a taxi from the bus station in Mexico City to our hotel took over an hour.