Didn't want to start a new topic so posting here...

JCL, DavidOC is right, the field for Action is 34 chars long not 33. This explains why a while ago, when I was using 33, after counting up the bytes there was always 1 byte missing, which I couldn't explain.
If I use 33 bytes for action, and read the following flags/skills I get garbage, but using 34 it works fine.

Can you please update the WMB documentation.