That’s a great plan. You do not want a CA on your DC if you can avoid it. Your root CA should be offline, so after you create it and issue the cert for the Sub CA, shut the VM down and leave it off.

DNS should be on the DC. That’s fine to leave.
Microsoft best practice for security is that DHCP is not hosted on domain controllers. Everybody does it, but you technically shouldn’t. Separate if feasible. Have 2, put them in a DHCP failover relationsip.

Are you using lightweight directory services?
What are you doing with file/iscsi services?
WDS definitely should not be on a DC.

The biggest hurdle you have is spinning up the new enterprise PKI in my opinion. Once you get that done the rest is easy.

You will need to update DHCP scopes (as well as any static assigned devices) with the IP addresses of the new DNS servers.

Make sure have your DNS properly set up on your DCs both the existing and the new ones: Active Directory DNS Refresher

2 Spice ups