The receiver code is reading bytes even if there are none available.
If Wire.available() is non-zero it only means that there is at least one byte available - not that there are however many you need.
Try this (and note how it is been reformatted):
void receiveEvent(int howMany) {
for(readit=0;readit<howMany;readit++) {
// Wait for an available byte
while(!Wire.available());
// read it
data[readit]= Wire.read();
Serial.print("received ");
Serial.print(readit+1,DEC);
Serial.print(" value=");
Serial.print(data[readit],DEC);
}
}
Pete
P.S. this is a programming problem. Nothing to do with installation.