It looks a though you are sending data and getting a response.
receiveddata = SerialPort1.ReadByte()
You received a 21, this is Ascii decimal version of NAK (Hex 15). This indicates the device does not understand what you are sending it. To receive the reply as a hex value you can do this:
receiveddata = Hex(SerialPort1.ReadByte())
For sending a data string to the device I would use:
SerialPort1.WriteLine(code)
Regards
[Edit]
WriteLine appends a line feed to the string, so maybe not so good to use.
Send each one out individually using Write.
I would check on the 0x99 code, that is part of the extended ascii format and when I send that out the comport it reads something different all the rest look OK. Check the device manual again .