I2C sometimes works sometimes doesn't
You have a breadboard in the middle of a whole bunch of things operating at fairly high speed.

This is just asking for things not to work.

Breadboards have wiggly contacts, inviting glitches in your signals and power supplies.

Breadboards have capacitance between all the pins, inviting crosstalk between lines and causing slower rise times on the edges of your signals.

Try the following:


Use a lower data rate.  Your modules support up to 400kbit, but you don't have to run them at full speed.
Use shorter wires, and make sure they make good contact with your breadboard.  
Consider soldering the connections instead of using a breadboard.  Soldering isn't that difficult to learn.