Fix one thing to go back to the original issue.
I've resolved the error regarding the unexpected port element, by adding the xsi:type attribute to the elements and setting it to the corresponding class:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:vim25" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Body><ns1:ReconfigVM_Task xmlns:ns1="urn:vim25"><ns1:_this xsi:type="ns1:VirtualMachine" type="VirtualMachine">vm-106</ns1:_this><ns1:spec xsi:type="ns1:VirtualMachineConfigSpec" type="VirtualMachineConfigSpec"><ns1:name>centos-6-x64-nocpanel</ns1:name><ns1:deviceChange xsi:type="ns1:VirtualDeviceConfigSpec" type="VirtualDeviceConfigSpec"><ns1:operation xsi:type="ns1:VirtualDeviceConfigSpecOperation" type="VirtualDeviceConfigSpecOperation">edit</ns1:operation><ns1:fileOperation xsi:type="ns1:VirtualDeviceConfigSpecFileOperation">replace</ns1:fileOperation><ns1:device xsi:type="ns1:VirtualDevice" type="VirtualDevice"><ns1:key>4001</ns1:key><ns1:deviceInfo xsi:type="ns1:Description" type="Description"><ns1:label>Network adapter 2</ns1:label><ns1:summary>vm.device.VirtualVmxnet3.DistributedVirtualPortBackingInfo.summary</ns1:summary></ns1:deviceInfo><ns1:backing xsi:type="ns1:VirtualEthernetCardDistributedVirtualPortBackingInfo" type="VirtualEthernetCardDistributedVirtualPortBackingInfo" base="VirtualDeviceBackingInfo"><ns1:port xsi:type="ns1:DistributedVirtualSwitchPortConnection" type="DistributedVirtualSwitchPortConnection"><ns1:switchUuid>23 af 32 50 fa 1f e6 60-98 56 cf 4d 16 a9 ad 9e</ns1:switchUuid><ns1:portgroupKey>dvportgroup-107</ns1:portgroupKey></ns1:port></ns1:backing></ns1:device></ns1:deviceChange></ns1:spec></ns1:ReconfigVM_Task></SOAP-ENV:Body></SOAP-ENV:Envelope>
So now, once again, I am seeing the error "Invalid operation for device '0'" in vSphere Client for my reconfigure virtual machine task.
Any ideas are appreciated.