I don't know - i totally get that it could be disability discrimination because of OP's child. But unless she was employed with the company knowing that she wants these adjustments, is it really discrimination or is it just bad management?
If I've understood it correctly, since OP's husband left, the company has made a reasonable adjustment that she doesn't work weekends. In something that has to give 24/7 cover, that is a big move, especially since those shifts presumably fall on the shoulders of the colleagues. OP may have understood that these weekends applied to Christmas day too, and also understood that the day off being allocated according to need applied to employee's needs rather than company needs.
It's a big hot mess, quite frankly. But. Bottom line? it is down to management to solve it.
I think the current situation seems to be that colleague has been granted the day off? if so, and she won't swap, then OP needs to ask other colleagues. If there are no other colleagues? OP needs to just keep telling her manager, in writing, that she cannot cover the shift because she has no childcare. Don't leave it to the last minute, just keep saying it. Make it clear that there is no way she can be there.
The best advice you've had in this thread, OP, although it probably can't help you in this instance, is to join a union. They can tell you how to approach things like this in future.