Still have a effy setup VM with them cannot wait to move it across to domains but currently their is a possibility of downtime should we move potentially breaking some sites, so cannot risk it at the moment.
I'd recommend prepping the DNS first. So change all of the affected sites on that server to new DNS hosting (wherever that may be, probably at the new host). So your new host DNS entries points back to Afrihost currently, breaking nothing. It should be a seamless switchover as both DNS servers (at Afrihost, and at new host) will have same settings.
I usually set the TTL of the records on the new host to 1 minute so that any requests will have to refresh after 1 minute (you will see later why)
Wait for it to propagate, I usually do it a week in advance of everything.
Once you're in control of the DNS of the sites at the new host, backup and restore the sites on the new host. Depending on the number of sites, it usually takes me less than an hour to do.
I then use the hosts file on Windows to override the DNS to point to the new host, so when I open my browser and type in the domain, I hit the new servers, not the ones at Afrihost. After I've tested everything works fine, I change the DNS entries for the web hosting to point to the new server.
Since your DNS servers are already with the new host with a TTL of 1 minute, the DNS should change quite quickly and sending traffic to the new host. Change the TTL back to the default for those entries.
You will notice I said specifically the web hosting.
If you have email on Afrihost as well, what I do is basically the same as outlined above, but I'd create a subdomain entry on the new DNS to point to the IP address of the "old" mail server. I recreate all the POP accounts on the new host for all the domains and then login via webmail to POP the old mail server with any mail (if the client doesn't download all their mail immediately)
I do the same with the MX records when all that is prepped, then I just setup the webmail to POP the old mail server every 5 minutes for any messages that might have been delivered there during switchover. Since the TTL is 1 minute, it's rare that it does, depends on the volume of mail your clients get. Set the TTL to the default once the MX records are also switched over and tested and keep checking for old mail for another week or so after.
You should be up and running with 0 downtime like this and you will have the ability to just point the DNS back to the old servers in case there is an issue.
I've moved more than 100 sites like this hosted on a dedicated server before.