Shared Server Migration
Setup the new server with a temporary IP.
Upgrade MySQL on old server with same version of MySQL as in the new server.
Set the MySQL root password same as that in the old server.
Use the transfer tool to perform the migration. Use shared IP even for the ones with dedicated IP.
Once the transfer is done and during off-peak hour, stop MySQL on both the servers, and do an rsync of /var/lib/mysql, choosing the option to delete the contents of new server which are different from that of the old server.
Start MySQL on both servers.
Do an rsync of home directory, choosing the option to delete the contents of new server which are different from that of the old server.
Now, copy /etc/ipaliases from old server to new server.
Change IPs of dedicated accounts accordingly.
Copy all WHM domain forwarders to new server and make sure that the old and new server has the same IP for domain forwarders.
You may need to put the accounts out of CageFS and back.