I did a 3.6 to 4.1 like this. I moved all of my VMs to a new storage domain (the other was hyperconverged gluster) and then took a full outage, shut down all of my VMs, detached from 3.6, and imported on 4.1. I had no issues other than expected mac address changes, but I think you can manually override this in the engine somewhere
If you are worried, do it with one VM. Create a new storage domain that both clusters can "see", move one VM to the domain on 3.6, detach, and import to 3.1. Bring the VM up
If it is Linux VM's older than systemd and using sysvinit, you will hit issues where your MAC address will change and udev will move it to eth# wherever # is the next available NIC in your VM host