The problem is here:
while(Wire.available())
msb = Wire.receive();
lsb = Wire.receive();
You want to wait for TWO characters and then read them:
while(Wire.available() == 0)
/* WAITING FOR A CHARACTER */;
msb = Wire.receive();
while(Wire.available() == 0)
/* WAITING FOR A CHARACTER */;
lsb = Wire.receive();
or
while(Wire.available() < 2)
/* WAITING FOR TWO CHARACTERS */;
msb = Wire.receive();
lsb = Wire.receive();