The only way I can get the Arduino to freeze during execution is to pull one of the I2C lines to ground. You should carefully check along the I2C lines and make sure nothing is shorted to ground, maybe use a multimeter to verify. The I2C connections are on the bottom left corner of the chip if you look at it with pin 1 on the top left.