Turns out that Paul was correct. It was a software issue. After removing two superfluous pull-ups (not needed because the Mega provides them) and installing a bidirectional level shifter on the SLA and SCL lines going to the pair of Teensies, I got the same weird results. On a whim I changed the slave address on the Teensy and viola, it now works. I've got a total of seven devices on the I2C bus and one of them was responding to the same address so the data got interleaved on the receiving end. I don't know how that happened as all I2C addresses are defined in the same location to prevent just this sort of thing from happening, but at least I now know what address not to use.
I have a philosophical question, should I install pull-ups on the Teensy side of the level shifters, or because they're bidirectional, will the Teensy "see" the Mega pull-ups?