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 SaveRpt(ByVal cls As String)
Dim ds1 As New DataSet
Dim tr As TextReader = New StringReader(cls)
Dim xr As XmlReader = New XmlTextReader(tr)
ds1.ReadXml(xr)
Dim rr As DataRow
strMsg = ds1.Tables.Count
For Each rr In ds1.Tables("tbl").Rows
strMsg = strMsg & " *** " & rr.Item("item1").ToString
Next
Hope this helps someone as it has driven mne up the wall for a while :)