Как найти разницу в двух экземплярах класса?
Если нужно под конкретный класс - напиши собственный метод сравнения. Встроенных методов нет под твою задачу. Equals делает не то, что тебе нужно, судя по вопросу.
все зависит от задачи:
как именно сравнивать: рекурсивно, нерекурсивно
что выдавать в результате: имена свойств, PropertyInfo, PropertyDescriptor
если особых требований к быстродействию нет, то можно написать через рефлексию универсальный сравниватель, в том числе и рекурсивный.
В простейшем случае, нерекурсивный вариант, который сравнивает  свойства с простыми  типами по значению, а ссылочные по ссылке, и выдает имена различающихся свойств:static IEnumerable<string> Compare<T>(T a, T b)
            where T : class
        {
            return typeof(T)
                    .GetProperties()
                    .Where(pi => !pi.GetValue(a, null).Equals(pi.GetValue(b, null)))
                    .Select(pi=>pi.Name);
        }