Shared storage is going to be the biggest trick here. If you're hosting VMs from SMB then there won't be a problem. If they're on CSVs then you might have troubles because multiple clusters can't access the same CSV. Plan that part out first.
To split the cluster in two:
- Use Failover Cluster Manager to pause a candidate node and drain its VMs to another node
- Evict the paused node from the cluster
- In PowerShell, run "Clear-ClusterNode -Force" directly on the recently evicted node
- Create a new cluster with it from the evicted node
- Repeat steps 1-3 for other nodes that you want in the cluster, adding them to the new one that you created in step 4
On the original cluster, use the "Remove" function in Failover Cluster Manager on the virtual machine(s) to move to the new cluster. Then you can use Hyper-V Manager to migrate them from their original cluster to a node in the new. Since you have different CPUs, this can only happen online if you already enabled the option to "Migrate to a physical computer with a different processor version" on each VM to move. Otherwise, you will have to take a downtime window to shut the VM off (not saved) and migrate it. After you complete the migration, use Failover Cluster Manager to add the virtual machine back into high availability mode.
Depending on your storage situation and host capacity/VM load, you may need to stagger migrations gradually as you evict and rejoin nodes. There's nothing wrong with that.
How-tos:
Shared Nothing Live Migration (migrate VMs outside a cluster); if you don't want to turn on processor compatibility mode and instead move the VMs offline, then this isn't necessary
Processor compatibility mode
Configure hosts for Shared Nothing Live Migration; note that this article indicates that it is for non-cluster joined machines. However, the parts in step 2 are also necessary on cluster-joined machines when you want to Live Migrate a virtual machine across, into, or out of clusters. The extra configuration is also not necessary if you will turn the VMs off to move them.
The failover cluster documentation is unfortunately sparse, although you should have no trouble finding the actions that you need by right-clicking things (nodes for pausing, eviction, and adding virtual machines; VMs for removal; etc.). The PowerShell components:
Remove-ClusterNode to end a node's cluster membership
Clear-ClusterNode to clean up a node after eviction; you will need to do this anyway or evicted nodes will likely refuse to join a new cluster. There is no equivalent in Failover Cluster Manager.
Remove-ClusterResource to remove virtual machines (and other things) from cluster coverage; if you're unfamiliar with PowerShell, this is a lot easier to do in Failover Cluster Manager by right-clicking the VM and clicking "Remove". For PowerShell, you can use Get-ClusterResource first to find the name of the VM(s), then use them in Remove-Cluster Resource. Ex: Remove-ClusterResource 'Virtual Machine webserver'. If you have some PowerShell experience, you can craft a Get-ClusterResource query that selects one or more virtual machines and pipes them to Remove-ClusterResource.
Add-ClusterVirtualMachineRole to convert unprotected VMs on a node to high availability mode in the cluster
Add-ClusterNode to add new nodes to a cluster
Test-Cluster to validate final configurations and save new reports