We don't care about sample code that you can find. We prefer that you have reliable code. Even the working code elsewhere on this forum is still not okay.
You could check the error returned by Wire.endTransmission() and the number of bytes returned by Wire.requestFrom(). If you do that every time, then you will immediately know if something is wrong.
When you have trouble with a sensor, you should not start a calculation when there was a problem and the value could be -1.
Some sensors are always available on the I2C bus, some sensors are not visible on the I2C bus when they are busy.
I don't know how this sensor behaves, but I think that you have to wait after a conversion.
This part of the datasheet is not very clear: "A conversion can be started by sending the command to MS5611-01BA. When command is sent to the system it stays busy until conversion is done. When conversion is finished the data can be accessed by sending a Read command, when an acknowledge appears from the MS5611-01BA, 24 SCLK cycles may be sent to receive all result bits".
There are more cryptic parts in the datasheet.
For the Wire.requestFrom() I prefer this:
int n = Wire.requestFrom( 0x76, 2); // request 2 bytes
if( n == 2) // did we get the 2 bytes ?
{
Serial.println( Wire.read()); // word 1
Serial.println( Wire.read()); // word 2
}
else
{
Serial.println( "Wire.request failed");
}
When there are less than 2 bytes read, then there was a severe bus error or the sensor is not connected or busy. When there are more than 2 bytes, well, that is not possible. So if you request 2 bytes, then you should get 2 bytes.
You have no delay after the reset command. The other code on this forum does. I did not read the datasheet thoroughly, so I don't know what that delay should be, but it makes sense to have that delay. Most sensors need a delay after a reset.
Perhaps the sensor needs delays in more situations.
You do this:
while(!Serial);
Does that mean, that the Teensy will stop there when the computer is not connected. I hope that code is only used when testing.
When you say that the pullup resistors should be okay, that is not good enough
Can you measure them ? Perhaps they have accidently the wrong value, for example 1k or 100k would be wrong.
The code on this forum that you gave a link to is still not okay.
A "while(!Wire.available())" after a Wire.requestFrom() is not okay. The first version was using Wire.beginTransmission() and Wire.endTransmission() with a Wire.requestFrom(), that can mess up the sensor.
I wrote about the common mistakes and have an alternative explanation of the functions.
At the end of that other thread, someone mentions a "repeated stop". I have never heard of a "repeated stop", I think he means a "repeated start". I can not find in the datasheet that it needs a repeated start. But if it does, the Wire library can do that without problem.
Are you satisfied that you have working code ? Even when it is not okay yet ?