Example in some condition have "B5B0B1B2B3B4" or "B4B5B0B1B2B3" ecc ecc depend of start condition.
So the data sequence seems to be correct you just don't read it alligned.
Serial Stream:
|B0B1B2B3B4B5|B0B1B2B3B4B5|B0B1B2B3B4B5|B0B1B2B3B4B5|B0B1B2B3B4B5|
| ^ ^ ^ ^ ^ ^|
|B5 B0B1B2B3B4|
RecvBufferStr(6,50);
I'd read the data byte by byte (Serial.RecvByte(10)), search for the beginning and evaluate the block then.