We named DS after my granddad, who died six years before DS was born.
I don't think there's anything wrong with using a name you love, that was also the name of a person you loved, for someone else you love.
The fact that my granddad (and a million other people) have had the name as well makes no difference and doesn't make the name any less DS's name. It is his name, nothing else would have suited.
His middle name is also a family name but that was coincidence more than anything else. The two names together just were DS's name.
Margaret is a lovely name. And OP wants it as a middle name, so it's not going to be in every day use. She wants it because it means a lot to her, because a woman she loved had the name and because she wants to pass on something lovely to her daughter that can then belong to her.
And her DP shouldn't have been so rude about it. Names to go in and out of popular opinion, some names stay a little bit more timeless than others.
But the current popular middle names (Rose, May, Mae, Grace etc) are the Louise's, Jane's and Ann's of today. So why not use name that can be argued is more timeless than dated, if it means so much to the OP and when a more modern or popular at the moment name might date badly anyway?
It's said a lot here on MN but every name has been used by someone else anyway, so why worry about choosing a name on the basis that you can't think of any relatives who already have/had it, therefore meaning it's not really your child's name but belongs to Great Uncle Henry (deceased) or cousin Sharon (alive but a reasonable distance away and only seen once in a blue moon at weddings and funerals)?