When McCoy "dug" at Spock, the science officer in turn could dish it right back at the doctor. Data, on the other hand, was far more "innocent" and truly lacked understanding of human behavior. When Pulaski "zinged" him, it was basically the equivalent of kicking a puppy. I don't recall him pointing out human shortcomings because Data wanted to be "human". Now, if Data stated the various advantages of being a self aware construct, then they would have been on more equal footing. But depicted as it was, Pulaski just came across as needlessly cruel.
I think you hit all of the points; TNG wanted a "McCoy-like" doctor, but ended up with something along the lines of the "snapping, combative doctor" stereotype seen in endless sketch comedy versions of TOS.
Somehow, the TNG brain trust could not see that in order for Pulaski to be this "McCoy-like" character, and in trying to make Data the new Spock, they needed Data to be proud
of his own qualities (ex. Spock resenting the mere idea of being anything close to human / pointing out human shortcomings at every turn).
Data wandering around trying to be human
in his lost, childlike way meant anyone attacking him appeared to be a very abusive person.
That's the problem of trying to copy+paste character archetypes developed by another series.