The while loop is dodgy - you need to wait for each byte in turn, if data isn't available you'll skip the loop entirely and not wait.
while (Wire.available() < 2)
{}
firstbyte = Wire.read(); // Read press high byte
secbyte = Wire.read(); // Read press low byte