i2c hanging while motors running

I like your breadboard, I have seen this before on my own systems. I traced it down to the libraries as stated above because if they do not get a response they just wait for one. That puts you in do nothing mode. I found it by putting a print statement before and after each wire access, it became obvious very quickly. From your pictures I do not see bypass capacitor nor do I see any bulk capacitance If I am correct this can lead to the problems you are seeing. I also assume the boards are being powered by a power source not sourced by the Arduino which is correct. Double check the grounds they like playing games. Another thing you can do is to slow down the I2C speed, this helps reduce noise problems. You can also check the I2C pull up resistors, A scope would be great. Try lowering them on the end board on the bus.
Good Luck & Have Fun!
Gil