High Resolution Gyro Question

the payload seems to be 6 bytes (weird there is no start or end marker) to send over serial.
What's the frame rate ? (how often does the Gyroscope send the data ?)

if the data comes in at 1 megabaud, you should think at what happens during this

// wait a bit for the entire message to arrive
    delay(100);

At 1Mbaud you receive 1 million bits per second (Gyroscope constantly outputting data?). So during the 100ms delay you had, you possibly received 100,000 bits, roughly 10,000 bytes and you serial buffer is 64 bytes deep...

➜ don't second guess timing on asynchronous protocols, just read the data correctly when it arrives (I would suggest to study Serial Input Basics to understand how to approach this)