Can't tell from screenshots, are you calculating packet length correctly and adding last zero bytes?
From docs:
byte Size = 8 + TEXT_SIZE (TEXT_SIZE = 4, 8, 12... 128)
char Text[TEXT_SIZE]; // up to 128 characters of text - last byte must be zero
so minimal packet data (16 bytes) will looks like this (^J☆) in hex:
10 0e 00 00 ff 00 00 00 5e 4a 81 99 00 00 00 00
Let computers do the hard work with bytes
Encoding codepage = Encoding.GetEncoding(932);
Encoding unicode = Encoding.Unicode;
byte[] unicodeBytes = Encoding.Unicode.GetBytes("^J☆");
byte[] codepageBytes = Encoding.Convert(unicode, codepage, unicodeBytes);