Spróbuję Ci pomóc:
Po pierwsze funkcja std::remove_if przyjmuje jednoargumentowy predykat. Z tego co się orientuję operator== jest operatorem dwuargumentowym. Po drugie taki zapis:
ref.operator==
nie jest w C++ prawidłowy. Rozumiem, że chciałeś pobrać adres tej funkcji, jednak robi się to trochę inaczej:
&Uczen::operator==
Pobieramy tz. wskaźnik na członka (pointer to member function: http://en.cppreference.com/w/cpp/language/pointer). W tym przypadku użycie tego i tak nie jest prawidłowe.
Można to naprawić w taki sposób, używając np. std::bind lub lambdy:
remove_if(wpisy.begin(), wpisy.end(), std::bind(&Uczen::operator==, ref, std::placeholders::_1));
remove_if(wpisy.begin(), wpisy.end(), [&](const Uczen& other) { return ref == other; });
Nie mam możliwości przetestowania kodu, ale powinno działać :)