The domain name and the hosting are separate things, although sometimes provided by the same company. WordPress is installed wherever the hosting is. The domain name is pointed to the hosting wherever the domain name is purchased from.
So at any time you should be able to log in to your hosting control panel and make backups and download them. You can even access the site without a domain name, using the IP address and user name (for shared hosting), but it won’t work correctly since the database contains the domain name.
Also at any time you should be able to log in to your registrar account and change where the domain name points.
It sounds like you need to go to your registrar account and point the new domain to your old hosting. And you need to go to your hosting account and use phpmyadmin to change the options table for the site_url and the home_url to have the new domain name. Then you can login and install a Search/Replace plugin to change the old domain name to the new domain name everywhere it occurs. This can be tricky in the options table and post_meta because the values are serialized and if the names are different lengths, it will mess things up. There are some plugins that help with this.