Насколько я знаю, все обработчики событий должны быть "отсоединены", также вы должны освободить все привязки на вашем tabItem.
Также Если я не ошибаюсь CommandBindings, KeyGestures также может вызвать утечку.
Попробуйте использовать CLR Profiler.Это сэкономило мне много часов много раз, хотя я не использовал его с WPF.Но я почти уверен, что справится.