I would expand it further...
Have a general table/allocation dashboard, where the header should have columns like:
VM Name, Description, GPU, Audio, USB controller, CPU Pair 1, CPU Pair2, CPU Pair3, CPU Pair 4, ... and so on
CPU Pair - Should be more like 'CPU0;7' , 'CPU1;8', and so on, for an 8 core 16 thread CPU for example...
And this table filled initially with the currently defined VM's - each row for an existing VM and it's current resources.
And have dropdowns for the installed resources like GPUs, Audio, USB controllers...
Users will mark with 'x' the CPU thread pairs they want to allocate for each VM.
Probably there should be some initial configuration to pair GPU devices with respective rom files as well (e.g. first slot Nvidia GPU passthrough)
So that 'rom' element is also added to the xmls.
In this way, one could easily reallocate the resources to the VM's as per their immediate needs, without editing each VM separately, and loosing track of the CPU allocation, GPU, etc...
This kind of feature could be a nice addition also to the ControlR mobile app.