При решении поставленной задачи я рекомендую Вам использовать
трехслойную архитектуру.
Слой представления в Вашем случае - это windows клиент и web клиент.
Слой домена - это сами объекты предметной области и веб сервисы.
Слой данных - это маппинг предметной области в бд.
Слой данных рекомендую организовать на основе Entity Framework 7 (бета), так как последняя версия поддерживает
внедрение зависимости. Для учебного проекта будет в самый раз, заодно изучите новую технологию.
Для предоставления данных рекомендую использовать шаблон
Factory и шаблон
Репозиторий.
WPF клиентов я рекомендую цеплять все равно через сервисы, чтобы не нарушать общую архитектуру. Visual Studio сама сгенерирует Вам классы-обертки для вызова сервисов. К их методам Вы уже можете привязываться.
Более одного контекста нужно создавать когда у Вас имеется гетерогенная структура источника данных. Лучше при проектировании проекта с нуля избегать такой ситуации. Однако во взрослых проектах рано или поздно появляются дополнительные контексты.
Для пополнения копилки знаний на тему проектирования ПО я настоятельно рекомендую к прочтению Мартина Фаулера -
Шаблоны корпоративных приложений. Ответы почти на все Ваши вопросы имеются в данной книге.