I found the answer to my question about the padding that gave me the developer of Firewing PIC24 / PIC32:
“Data types larger than a byte have to be aligned on word/dword locations or you get an address fault, so structures must typically be padded with extra bytes if you have mixed data types in them.”
“Anything larger than a byte has to be aligned (either 2 or 4 byte, depending on the core). Compiler re-orders (and packs, where necessary) structure members in order to word align data. This means you cannot guarantee order of structure members. In practical terms, this has no impact on normal program operation. You can even assign structures of the same type to each other.”
Then you need to use the longest type of the variable used in the structure, aligning the fields shorter … result is that the whole is much different from the original message that is wanted to transfer.
To use the original source decompose fields different from the bytes into sub-fields long one byte only.
XID is 4 bytes then XID0, XID1, XID2, XID3
Secs is 2 bytes then Secs0, Secs1
ensuring that the structure is composed of only fields of type Byte