Something is definitely broken in your discourse. I just tested changing admin email on my sandbox and it works fine. You’ll have to check exactly what is not working as expected.
IIRC, changing email via ssh console doesn’t require a verification either so that is the easiest way if you’re having email related issues.
Another possibility could be with your email provider/email client/browser extension that is breaking the verification link. I’m not sure which one but it has to be one of these.
While this third one is unlikely but your discourse instance or a 3rd party plugin installed could also be causing this.
So what I’d suggest is that you change the email via ssh console and spend some time debugging the issue with your instance.