I think the only things in AuxData should be nonce, string_account_id and amount.
The other stuff should not need to be passed in at the point of signing, as it will always be the same.
As long as the chain metadata is hard-coded into the program, so should be spec_version, transaction_version, etc. Even if we manage to fix this and have a chain-agnostic program, i think this stuff should be set in the program config at the point of deploying.