On the one hand, there is a simple grammatical difference between who and whom: the same difference between she and her. One appears as the subject of a sentence, and the other appears as its object. That should be simple enough to work out, but since some of the other rules around other uses of whom are so complex that native speakers have tended to use who for everything.
Let’s look at a more complex use.
Both Latin and Anglo-Saxon were inflected languages and each had a dative case. “Case” here just means a way of using words so that they achieve a particular function: and “dative” helps to define what that function is and to give it a name. Dative is from a Latin root word which is related to the same root which gives us donate in English, and in a roundabout way expresses the idea of giving something to someone. In modern English, which is mostly non-inflected, we do the same job by using the preposition to.
And that brings us to the use of whom which most people are agreed on: when we wish to express the idea of giving something to someone, we say to whom, thereby neatly sidestepping the problem of dealing with an outmoded idea of “case” and using the simple preposition which carries the idea of approaching, or giving, something to someone else. If you say to yourself to who and to whom, most native speakers pick up the clue given by to and can usually manage to select whom as the proper word to accompany it, but expecting them to justify their choice correctly is just one step too far for most of us. It just sounds right.
But for all the other complex differences which once existed between who and whom, the battle would appear to be lost. Who has won, and whom is relegated to a useful points-scoring exercise between the literati and the less literal.
And whom do we have to thank for that? Why, those pesky 15th century grammarians who tried to shoehorn English grammar into a classical mould that it simply wasn’t built for. Still, make sure you score some points for yourself…