EF еще не реализует отложенную загрузку (или, по крайней мере, не очень хорошо), так что это может быть частью вашей проблемы с производительностью. Из-за этого пострадают многоуровневые запросы (запросы поверх запросов).
Звучит так, будто вы пытаетесь сделать с ним довольно сложные вещи. Попробуйте больше думать с точки зрения транзакций, то есть Select, Update, Commit; New, Insert, Commit; и выберите, удалить, зафиксировать.
В любом заданном репозитории или потоке всегда работайте только с одним DataContext. Передача объектов в контексте данных, как вы выяснили, трудна. Но это должен быть бриз в том же контексте данных.