Most of the EQ related structures are based on the packet structures sent by the EQLive servers, so your layout is mostly governed by what VI programmers decided on. I know that in your example the byte structure should be identical, but you do run the risk of running into automatic padding of structs by the compiler unless you go sticking #pramga pack(1) all over the place. I'm sure it's not top of the devs list to tidy up their packet structs
One of the devs will have to answer about the disconnects, I've not been anywhere near that code. I presume it's just the client getting some unexpected data and bombing out. A lot of the EQ packets structures changed in the last big patch (in preparation for PoP I guess) and EQEmu hasn't got them all right yet.
K.