I just finished testing this and you are correct, changing it from VirtualMachine.Network0.ProfileName to VirtualMachine.Network0.Name and specifying the adapter worked 100% of the time. Also this did in fact trigger the IPAM plugin allocate workflow as well. So a win on both accounts.
In regards to IPAM, we are a corner case. We are a university that develops an open source network documentation tool which includes IPAM. That being said, we had to develop a plugin using the IPAM SDK that connects to our IPAM solution. So far its been going pretty. We have a functioning plugin, although I'd call it an early beta. We'll continue to improve it over time. It's been a challenge to do without SDK support, but we've managed up until this point.
I'll create a separate thread detailing the issues with getApplicableNetworks.
I'm going to go ahead and mark your reply as the correct answer. Thank you once again!