Great city, have been several times. We have never been at Christmas but it is supposed to be decorated nicely.
If you can afford, stay on the site of colonial Williamsburg. Some very nice hotels and convenient. All the chain hotels within a few miles.
The village is free to walk around but to go into the village you will need to purchase admission. IMO this is worth it and you will get more than a small house with a small bed.
If you enjoy history then Yorktown and Jamestown are near by. Also included in the Williamsburg admission are a couple museums run by the foundation.
Restaurants have improved over the years. Of course there are seafood restaurants and the village has colonial restaurants which for the food alone are expensive but you are buying the history.