DT said:
e: ASM vs PBP interrupts
Do you have other I2C statements in the Main program?

If you attempt to execute I2C statements in the interrupt handler, it's possible that another I2C command is already being executed from the main loop.

In which case, everything gets confused.

By commenting the line that you did. When it returns to the main loop, the currently executing I2C statement suddenly thinks it's done with what it was doing, but in actuality, it was the I2C in the interrupt handler that finished, not the one that got interrupted.