XmlDocumentをリターンタイプとして使用することはまったくありません。たとえば、XMLを文字列として返すことをお勧めします。
<WebMethod()> _
Public Function HelloWorld() As String
Return File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory & "\Product.xml")
End Function
次に、クライアントアプリケーションで、XML文字列をXmlDocumentオブジェクトにロードできます。
Dim xmlDoc As XmlDocument = New XmlDocument()
xmlDoc.LoadXml(serviceRef.HelloWorld())
ただし、メソッドがXmlDocumentを返すようにする必要がある場合は、複合型であることに注意してください。クライアント側では、実際のXmlDocument型ではなく、プロキシ型として表されます。したがって、新しいXmlDocumentを作成し、プロキシのxmlテキストからロードする必要があります。
Dim xmlDoc As XmlDocument = New XmlDocument()
xmlDoc.LoadXml(serviceRef.HelloWorld().InnerXml)