The wallet consistency check would catch that. If the offline signer does not recognize the change address, make sure you are using the exact same Armory version for online and offline operations. If that doesn't fix it, make sure the serialization of the unsigned tx is not malformed. For that, load the unsigned tx in both offline and online instances, see what comes out.
If all else fails, then maybe you have a real problem.
Addresses are bound to their chain index, not the derivation type. There's only 1 address chain in a wallet, and each asset on the chain can instantiated as any script type. Once an address is picked, you can't manually change the script type. If the script type on chain is different than the one in the wallet, that is rectified, but it only works on online machines obviously.
The offline wallet can recognize the "mismatching" addresses because it resolves the script to the actual asset.
Ah, I didn't realise all types follow the chain index (makes sense) - so my different wallet instances may just have "slipped out of sync" because different numbers of various types have been generated over time. I'll look into that and see if I can get them back in line.
And (hopefully) the original tx with an unrecognised address may just have been malformed in some way. I'll see if I can re-create the problem.
They are all running the same version number (except the signer is no-asm). I'll report back. Many thanks.