Ответ на задачу: в переопределённом методе Equals вызывается Equals у переменной other, переданной как аргумент. Это приводит к сравнению аргумента с самим собой, что вряд ли является корректной логикой. Чтобы исправить ошибку, следует передавать this вместо other.