An important log seems to be missing here - machine-0.log from the amd64 machine showing provisioning failures and what tools are selected, but also it will help to set logging-config: <root>=TRACE in environments.yaml and reproduce the issue, then the logs will be much more useful (now machine-1.log seems to be mostly empty, because logging-config is set to <root>=WARNING as soon as it starts).
Regarding the second case (1.20.x) - your juju client binary is 1.20.11, but your agent versions all show 1.20.14, which most likely means you've used --metadata-source or --upload-tools or something like that as arguments to juju bootstrap. If you're using custom images and metadata, then it's likely there's a issue with them which lead to selection of the wrong tools.
An important log seems to be missing here - machine-0.log from the amd64 machine showing provisioning failures and what tools are selected, but also it will help to set logging-config: <root>=TRACE in environments.yaml and reproduce the issue, then the logs will be much more useful (now machine-1.log seems to be mostly empty, because logging-config is set to <root>=WARNING as soon as it starts).
Regarding the second case (1.20.x) - your juju client binary is 1.20.11, but your agent versions all show 1.20.14, which most likely means you've used --metadata-source or --upload-tools or something like that as arguments to juju bootstrap. If you're using custom images and metadata, then it's likely there's a issue with them which lead to selection of the wrong tools.