The world ain't black and white, so celebrating/cancelling people is unfair.
There are no good or bad people. Every person has some good impact and some bad impact on this world. Depending on (a) society's current views and (b) what we already know about a person, the public opinion of a person can change very quickly, which is silly.
A doctor can help people pro bono in the morning and beat their kids in the evening. A mugger may take something away from someone but they may also help a stray animal in need. A celebrity may give dozens of scholarships to children in need but may also sexually assault dozens of people.
Yes, people should pay for crimes. But perhaps cancelling a person's entire life work is unfair.
Maybe the only way to address this would be to not celebrate/vilify named people, but just actions.