Ни один сервер не знает об окончательном состоянии действия, выполненного клиентом. Для сервера операция заканчивается, когда он возвращает ответ на транспортный канал. Вы, как разработчик клиента, должны обработать любое исключение и снова вызвать службу, если это необходимо.
Btw. вы проверяли MS Sync Framework? Он делает именно то, что вы описываете, и поддерживает WCF.