Ok, I definitely see the problem now. The AngularPosA value is always 0 when set to BodyUserFrame (whereas it's not when set to UserFrame).
Interesting thing is that the struct for freespace_BodyUserFrame appears to intentionally order the fields differently (out of order) than UserFrame:
int16_t angularPosB;
int16_t angularPosC;
int16_t angularPosD;
int16_t angularPosA;
'A' is last -- and it happens to always be 0. Why is that?
If this isn't going to work, can I turn on both User and Body messages (not the combined BodyUser)? I don't see any way to do that given the Packet field doesn't appear to allow it.
Help?