I have the following struct:
[StructLayout(LayoutKind.Auto,Pack=0)] private unsafe struct BIRDSYSTEMCONFIG { public byte bySystemStatus;
Turns out all I needed to do was change:
[StructLayout(LayoutKind.Auto,Pack=0)]
To
[StructLayout(LayoutKind.Sequential,Pack=0)]
Since the question was about more than just how to solve it, I'll leave it open for a while. It'd be nice to find out a bit more about this error.