Christmas is a nice time to be in the UK but it can be tricky, as most things (including public transport, shops and most restauants) shut down early on Christmas Eve and don't open again until Boxing Day. To maximise your enjoyment of the period, I'd advise arriving a few days before Christmas so you can enjoy the shops and the pre Christmas buzz.
Don't let that put you off though, as the atmosphere in either London or Edinburgh will be magical. We've done Christmas Day in both places (London a few times) and loved it.
If it were me, I'd spend more time in London and Edinburgh, and cut out another stop, but if you do want to have three stops, you could do London, take the train to York, and then train to Edinburgh. Be aware also there can be longer train disruptions, as they tend to do maintenance work in the holidays.
On Christmas Eve, head out early to buy some food you can keep in your accommodation- the vast majority of restauants will be closed on Christmas Day, as will shops. There will be a few places (Chinese, Middle Eastern etc restauants, for example) open, but have a backup just in case. Christmas Day is a great time to go for a long, quiet walk in cities that are normally very busy. Shops will all be open again on Boxing Day. We normally go to church and then take a nice stroll.
There's a great trip report up now on the forum from someone who spent Christmas Day in London.
In terms I'd accommodation, it's probably too early to start looking. Christmas is not peak season, and I have never had trouble booking a few weeks out.