Yo particularmente me vuelvo un poco tarumba con tantos atributos alrededor de las estructuras y variables.
Mi consejo es que pruebes a declarar la estrutura y la variable en tu propio programa, y cuando consigas que funcione bien así, hagas la prueba de sacarlo a una librería externa y ponerle el resto de atributos.
O sea, yo haría esto dentro de tu programa principal:
/* Registro de ocho bits */
typedef struct tagREGISTRO8BITS {
unsigned BIT0 :1;
unsigned BIT1 :1;
unsigned BIT2 :1;
unsigned BIT3 :1;
unsigned BIT4 :1;
unsigned BIT5 :1;
unsigned BIT6 :1;
unsigned BIT7 :1;
} REGISTRO8BITS;
REGISTRO8BITS REGISTRO8bits;
Luego, para acceder a cada uno de los bits de la variable, en tu programa tendrás que hacer referencia a:
REGISTRO8bits.BITn
Una vez que consigas que eso funcione, si quieres puedes sacarlo a librería fuera y añadirle lo que quieras mientras siga funcionando.