If I use the following:
TR var word[7] 'trim
G var byte[7] 'gain
R var bit[7] 'reverse
C var byte[7] 'center
AD var bit[7] '0=Ana, 1=Digital
LM var byte[7] 'left max measured from 0. Is <RM
RM var byte[7] 'right max measured from 0. Is >LM
'hard coded S5 var byte[8] 'Channel 5, 8 states 0->255, gets *4 for uS
'hard coded S6 var byte[8] 'Channel 6, 8 states 0->255, gets *4 for uS
DB var byte[7] 'deadband around center value -> no servo change
arrayPVal var word[7]

I find that TR[0] gets strange (corrupted) data in it TR[1] data is OK
TR[0] also get zonked if I move its line to the end after arrayPVal.

Now if I use
TR var word[8] 'trim
G var byte[8] 'gain
R var bit[8] 'reverse
C var byte[8] 'center
AD var bit[8] '0=Ana, 1=Digital
LM var byte[8] 'left max measured from 0. Is <RM
RM var byte[8] 'right max measured from 0. Is >LM
'hard coded S5 var byte[8] 'Channel 5, 8 states 0->255, gets *4 for uS
'hard coded S6 var byte[8] 'Channel 6, 8 states 0->255, gets *4 for uS
DB var byte[8] 'deadband around center value -> no servo change
arrayPVal var word[8]

it all seems to work OK

Any thoughts on why. Sure words and things need to be alinged in memory
but I would have though PICBasic Pro would have sorted that out for me.

Thanks