Eirik Hoem has posted a tip for all of the PHP SOAP developers out there - a method for setting the xsi:type correctly for objects sent in the message.
I spent quite some time looking for info on how to specify the xsi:type for the objects, and I finally came across SoapVar. I created a base class which the SOAP classes extended. A method called pack is responsible for setting xsi:type.
In his example, he creates a BaseClass to work from and builds a createCustomer class on top of it, defining a setCustomer function inside. When the new Person is created, a new Customer is too complete with the correctly formatted type on the object.