Решением было перейти от использования веб-сервисов к использованию SPWeb.ProcessBatchData для импорта моих данных (спасибо Андреас).
XML, передаваемый в этот метод, выглядит следующим образом:
<ows:Batch OnError="Continue">
<Method ID="1">
<SetList />
<SetVar Name="ID">New</SetVar>
<SetVar Name="Cmd">Save</SetVar>
<SetVar Name="urn:schemas-microsoft-com:office:office#ColumnName1">Value</SetVar>
<SetVar Name="urn:schemas-microsoft-com:office:office#Modified">2009-09-03T15:05:00Z</SetVar>
<SetVar Name="urn:schemas-microsoft-com:office:office#Created">2004-01-15T13:48:00Z</SetVar>
</Method>
<Method ID="2">
...
</Method>
...
</ows:Batch>
Элемент "SetList" должен содержать Guid для списка, чтобы добавить данные тоже.В моем примере XML выше это пустой, потому что XML предварительно сгенерирован перед импортом данных в SharePoint, и мы не можем гарантировать, что Guid списка Sharepoint на целевом сервере будет таким же, поэтому мы заполняем это непосредственно перед импортом.
Я также должен был убедиться, что даты передаются в нужном формате, передав их в метод SPUtility.CreateISO8601DateTimeFromSystemDateTime.