Поскольку ваш клиент и сервер используют один и тот же технологический стек (т.е. оба используют .Net), ваш код на стороне клиента должен ссылаться на ту же сборку (содержащую объект данных), что и сервер *. Тогда ваши реализации интерфейса будут не повреждены, обе сборки будут использовать одни и те же определения объектов данных, а не сервер, использующий обычное определение, и клиент, использующий определение, которое создается как часть прокси.
Совместное использование или "повторное использование" этих сборок - тема, которая была хорошо освещена в SO.
* это означает, что ваши объекты данных, такие как Пользователь , содержатся в отдельной сборке, что является единственной задачей этой сборки. Тогда и ваш клиент, и ваш сервер (веб-сервис) могут ссылаться на него.