¿Cómo ignorar cosas de jabón en deserializar xml para objetar?

Cuando obtengo un xml, necesito deserializarlo a un objeto específico y pasarlo a través de un parámetro en un método de servicio web.

Código:

 var document = new XmlDocument();
 document.Load(@"C:\Desktop\CteWebservice.xml");
 var serializer = new XmlSerializer(typeof(OCTE));
 var octe = (OCTE) serializer.Deserialize(new StringReader(document.OuterXml));

 serviceClient.InsertOCTE(octe);

Pero cuando intento deserializar aparece un error que dice

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > was not expected.

Necesito ignorar la etiqueta del sobre y otras cosas de SOAP. ¿Cómo puedo hacer eso?

El archivo xml:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
              xmlns:ns="http://192.168.1.180:8085/">
 <soapenv:Header/>
 <soapenv:Body>
  <ns:INCLUIRCONHECIMENTOFRETESAIDA>
     <ns:CONHECIMENTOFRETE>
        <ns:CSTICMS></ns:CSTICMS>
     </ns:CONHECIMENTOFRETE>
  </ns:INCLUIRCONHECIMENTOFRETESAIDA>
<soapenv:Body>

Código de prueba:

XNamespace soap = "http://schemas.xmlsoap.org/soap/envelope/";
XNamespace m = "http://192.168.1.180:8085/"; 
var soapBody = xdoc.Descendants(soap + "Body").First().FirstNode;

var serializer =  new XmlSerializer(typeof(OCTE));
var responseObj = (OCTE)serializer.Deserialize(soapBody.CreateReader());

El jabonBody obtiene el<ns:INCLUIRCONHECIMENTOFRETESAIDA> Con toda la información que necesito. Pero cuando lo deserializo pararesponseObj Obtengo todos los valores como nulos.

Respuestas a la pregunta(2)

Su respuesta a la pregunta