I have figured what to do, just in case anyone else has a similar problem.
Use the submit data as string option in the data connections bit. This will submit an XML string that can then be transformed into a dataset in the web service, use a signature as below e.g.
<WebMethod()> _
Public Function ...