Я не знаю, имел ли мой ответ отношение к вопросу, но:
Быть очень осторожны относительно встроенных виртуальных методов! Некоторые ошибочные компиляторы (предыдущие версии Visual C++, например) генерировали бы встроенный код для виртуальных методов, где стандартное поведение состояло в том, чтобы сделать, только спускаются по дереву наследования и называют соответствующий метод.
Вы можете установить
setReturnsDistinctResults:YES
в вашем fetchRequest.
Подробнее см. В документации: NSFetchRequest Class Reference