Are you 100% sure you're setting your config fuse for RC_OSC before programming your PIC?

The RC values shown in your schematic should give you roughly 4MHz, but don't count on super accurate timing with any external RC osc circuit.

You could also try substituting a 10K pot for the fixed 5K resistor you have now. You can tweak the potentiometer to fine tune your RC osicllator circuit until you get it close enough to 4MHz for the I2CWrite & I2CRead timing to work.

Of course, you could always drop in a 4MHz crystal or resonator, and be done with it.

The pull-up resistors, as mentioned previously, would also be a nice twist if you're getting tired of fighting this thing. Your manual shows you the super simple pull-up resistor circuit. It really does make a difference.