Hai ragione Mauro, aggiungere una variabile per mantenere la struttura multipla di 16bit funziona ma non è la soluzione giusta.
Ho fatto delle prova anche con l'attributo packed senza aggiungere variabili di riempimento e tutto funziona, ovvero il compilatore non aggiunge variabili di riempimento.
Attualmente sono arrivato ad una struttura di circa 1000byte che salvo e leggo sulla EEPROMK esterna tutto in un fiato (periferica hardware e macchina a stati per evitare attese) presupponendo che la struttura sia sempre ben ordinata (anche se mi hanno detto di non fare affidamento su questo principio).
Recuperati tutti i parametri, con l'attributo packer mi dava dei problemi in una mia funzione (che non ha mai dati problemi) se passavo un variabile della struttura per riferimento, da qui la ricerca di un metodo con maggiori garanzie di funzionamento.
Credo che l'attributo packed mi nasconda qualcosa e accedere alla struttura con puntatori...dia questi problemi.