Hi Rychu
Can you post your complete C# code?
In the Arduino code, you execute the if statement if 5 or more bytes have been received, but then you do Serial.read() 7 times. Is this intentional? I think the last two reads are returning the error value -1 which explains the two -1s in one of your examples.
Regards
Ray