Allora, come ti è già stato segnalato, forse il problema deriva dalla filatura troppo lunga del cavo I2C.
Se ben ricordo, la libreria I2C di Arduino, non è tra le più ... "bullet-proof" ... e, in alcuni casi e per alcuni errori sul bus, rischia di inchiodarsi (non ricordo infatti se è sempre gestito un meccanismo di timeout e di gestione dell'errore sul bus).
Solo per prova non puoi mettere i due moduli vicini tra loro in modo che la filatura I2C sia al massimo di una ventina di cm. e provare in quelle condizioni?
Guglielmo