PIC16 - MSSP Peripheral I2C Master Halting In Middle of Clock Sequence?
Do you do any I/O outside of interrupts, like lighting an LED after getting the first byte?  A read-modify-write could end up setting the port bit by accident.  One thing you can do is read the direction register and the port data to see if they are still in their expected state.  Another way to make I2C go away is to disable the port, so read the register that has the i2c-enable bit and check that it's still enabled.

Long shot better than no shot.