XGATE compiler by default word aligns all struct members with sizeof() > 1. So you need to either insert "uint8_t dummy;" below or above unpaired acRequest , or in HC12 sources, which include GlobalsShared.h use pragma align like this
#pragma align on
#include "GlobalsShared.h"
#pragma align off
This will resolve different object size message. And to resolve "object defined twice", you need to insert extern keyword above your struct in *.h file.
Edward