XN-Matt We generally migrate from cPanel with a script that cleans things up beforehand. I've also provided @Adam details regarding correcting local MX records and updating cPanel DNS zones with the proper Enhance IPs after a successful migration, but I'm not sure whether any of these adjustments have been included.
If it helps at all here's my part of the script to update the MX records which runs on the cPanel server:
read -p "Update cPanel MX record(s)? " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]
then
grep DNS /var/cpanel/users/$1 | grep -v XDNS | cut -d "=" -f 2 | while read domain ; do
test ! -f /var/named/$domain.db && continue
uapi --user=$1 Email change_mx domain="$domain" exchanger="mail.$domain" oldexchanger="$domain" priority="0"
done
fi
$1 representing the first param to the script and is the cPanel username, then we grep DNS records from the user file for all domain names and reset the MX which is usually domain.com to mail.domain.com. (Wish the code formatting was retained!)
I have yet to figure out how to differentiate between local and remote MXs though, so check for external MX records because it seems to overwrite those too!