Da dürftest du ein Sprach/Technisches Problem haben, möglicherweise auch erst beim Wieder-Zusammensetzen.
HighByte = 16Bit / 256
Low Byte = 16Bit mod 256

16Bit = HighByte * 256 + LowByte
das stimmt schon so.

Je nach Sprache geht das ein bißchen anders.
Alle Zahlen müssen jedenfalls als unsigned definiert werden.