Long story short, I'm using a customised C++ relay server with liblacewing 0.2.6. All the received peer messages are misread, whether it's a C++ relay client or an Lacewing MMF client.
Client A sends "Apples." on any subchannel on any variant to peer Client B.
Server reads "Apples." from the message correctly.
Client B receives a message of 13 bytes, and reads the subchannel as the message (one byte subchannel, then a null).
Wireshark shows that the message is received with "Apples." in it.