Я предлагаю вам попробовать отладку.
Откройте панель разработчика в Chrome, поместите break-point
в функцию равенства в угловом коде. Теперь, когда происходит сравнение, переходите по строкам, переходя по строкам. Проверьте, в какой момент его возвращение ложно, и вы, вероятно, получите причину.
Или получить функцию равенства от углового источника:
Измените его с помощью консольных журналов на каждом return false
и используйте эту функцию для сравнения ваших объектов с целью отладки.