dein Problem ist nicht so sehr das "HEX" sondern wie du die Zeichen einliest.
du sollst jedes Zeichen einzeln einlesen, einen Zähler mitführen damit du weist welche Stelle gerade empfangen wird und beim Empfang des Header den Zähler wieder auf 0 setzen.
Ich rat dir diesen Forum Beitrag zu lesen und umzusetzen
https://forum.arduino.cc/t/serial-input-basics-updated/382007