I'm trying to say this gently, but it seems that you want to take the mantle of the charitable and magnanimous host each year when in reality you're being a doormat who delegates to your DH. You say you're "caught in the middle" yet it seems to me that you have created the situation and aren't using any of your own agency to control the outcome.
A saying I've tried to take to heart as someone who struggles with boundaries: "Don't make someone your priority when you're only their option." Note that your DB had other options, but figured he would get you to accommodate him anyway.
You didn't want to leave your DN out in the cold, but she:
- never contacted you directly about coming over
- changed her plans but never clarified them directly with you beforehand, despite having been asked to do so
- was asked DIRECTLY about her plans when she arrived and must have noted that confusion over the plans had caused tension between you and DB. Yet she did not apologise for the confusion, the inconvenience or the rift, thank you for your hospitality or offer to make other plans (however hollow that offer might have been). Instead she slunk off and parked herself on the couch without comment, hoping that you wouldn't pursue the matter any further
- had never been factored into Christmas dinner or your Christmas evening, but had no other plan for food in place (so what was she going to eat before her night shift?) and no other solid plan for where her nap was going to happen (since she was ringing around only hours beforehand - her other family may well be arses, but I don't think it's unreasonable for anyone to say no to someone randomly asking to sleep at their house on Christmas Day with no notice). Either neither of these things mattered to her, or she was banking on you to bend over backwards for her again.
While it sounds like she is in a challenging situation, she doesn't seem to have expressed any gratitude for the effort you have gone to or tried to make her stay go as smoothly as possible for you and DH. Which suggests that she wasn't particularly fussed about being by herself at Christmas and that this was therefore about how YOU felt about her being alone, not how SHE felt about it.
You want to open your door to any guest who wants or needs your hospitality. But any guest who genuinely appreciates and needs you doesn't want to be a burden and wants to consider their host's plans and feelings. Neither of the poor unfortunate souls you have invited seems to fit this bill.
Next, as I mentioned, there's an issue of agency. You "tried to make it clear" that there would be no dinner for DN by asking what her plans were for the rest of the day. That's not clear, that is dropping a hint. Clear would be outright asking what her dinner plans are as you only factored in X number of guests and she is not one of them.
You are the host and the one who insisted upon factoring DN into your Christmas plans, so I'm afraid it was your job to clarify if she was staying for dinner. Not DH's, not DB's, not even DN's, yours.
As soon as you found out that your relatives were shifting their schedules about, you should have immediately gotten the plan back under control. I agree, it does not make sense that your DN was going to be in your house when the rest of you were eating, so this point required immediate clarification to avoid unnecessary inconvenience to you and DH. You should have asked DB for DN's number off the bat and spoken with her directly to clarify what was happening. Instead, you left it to your volatile, unreliable DB to pass on a message, adding an unnecessary weak link to the chain of communication. Whether he passed on the message or not is anyone's guess, but she never got in touch and you didn't adequately pursue the matter with either of them, leaving a big question mark hanging over Christmas dinner numbers. It doesn't even seem like you went out and grabbed any extra supplies in anticipation of unexpected extra guests. Instead, you blamed DB on the day for not being a proper middle man and argued with him, causing him to storm off and once again impact seating numbers.
No wonder your DH gets stressed out. It's not just an extra guest or two, nor is it just a case of additional drama - it's an exasperating annual game of musical chairs because you won't organise your guests and your guests won't organise themselves. If DH ever objects, he is simply a scrooge who doesn't understand the true meaning of Christmas. You're the good guy, you see; he's the mean ogre who won't LET you be the good guy.
Part of being a good spouse is to respect your OH's time and efforts, and to step up to ensure others do the same - this means not allowing OH to be messed about, taken advantage of or placed at the bottom of the priority list. Part of being a good host is ensuring the day is properly organised to ensure that hosts and guests all know where they stand and that there aren't any unwanted surprises. You can't succeed at either of these roles currently because you characterise yourself as a plastic bag blowing in the wind, at the mercy of all of these outside forces. Your thought process seems to be "My family don't communicate or organise themselves and my DH is a grinch, whatever am I to do?" when in actuality you instigated the whole affair out of your own desire to appease everyone. And in the end, who was happy? DH wasn't. Your DB actually did have somewhere else to go, but if he hadn't then he could have been wandering the streets angry and on his own. And your DN either didn't give much a stuff if she came or not, or spent the day feeling unwelcome and like she had created an atmosphere.
What you need to say to yourself instead is, "I want DH to have an enjoyable Christmas. I also want to make sure my relatives are okay. Here is what I am going to do to ensure both of these things happen."
You can have a quiet Christmas Day with DH and the kids, give your lonely relatives a call to show you haven't forgotten them, and make plans to see them on Boxing Day or for New Year's, either with DH and the kids or on your own if need be. You're mistaking bending over backwards as selflessness. But sometimes taking charge and doing things your way is the most selfless thing a person can do.