One thing I'm doing that I'm not 100% sure of is reading out data as a byte array from a message, in this fashion,
//I first read out a few items using Readblah(), then I do this on the remaining payload:
outMsg.Write(msg.ReadBytes(msg.LengthBytes - msg.PositionInBytes));
I see a comment on PositionInBytes that mentions bits in the first byte may be used. However, since it only happens occasionally, this doesn't sound like it's the problem.
Also, the message that the error is occuring on is one where I'm sending a Double using Write/ReadAll. Which means basically that the message size is very small when the malformed error happens.