Gracias xknown, creo que ya voy entendiendo porque no me funcionaba, tendré que idear otra forma y abandonar el DataAdapter.Update porque lo que me comentas no lo voy a poder utilizar: No puedo dejar de utilizar XML y trabajar directamente con la base de datos porque esos datos XML vienen de una base de datos diferente de donde los quiero insertar, y lo de guardarlo como resultado del método GetChanges pues lo mismo.
Puede parecer un poco raro pero te explico, hay una aplicación (ajena a mí, adquirida por la empresa y de la que no tenemos el fuente) que trabaja con la base de datos añadiendo, modificando y eliminando datos de la misma y lo que intentamos es trasvasar periodicamente parte de esos datos a otra base de datos diferente, así que extraemos la información que necesitamos de las tablas, las guardamos en XML, las enviamos y añadimos los datos a la nueva BD.
No conocía bien el método Update, ya me parecía a mí demasiado "listo" para hacer una comparación entre la BD existente y el dataset e insertar y actualizar sólo lo que hiciera falta jeje.
Gracias por aclarármelo todo. Un saludo