Totally disagree about Spain. Barcelona and Madrid are expensive. Outside of those two cities, most of the country is a bargain. Plus they love visitors. Spain actually celebrates Christmas on Jan. 6th, Three Kings Day or the Epiphany, before that is the 12 days of Christmas. You could conceivably see Christmas elsewhere then go to Spain for more Christmas.
Totally agree on Switzerland. I've stayed in many hostels in Austria and Italy and met many travelers coming directly from Switzerland. All said the same thing, "I can't believe how expensive Switzerland is."
The other real bargain in Europe right now is Poland. It would be cold but that might be a great place to experience around Christmas. Train fares and lodging are dirt cheap.
Austria and Germany are mid-range in terms of overall expense.
Unless you are getting some incredible deal on a rail pass, opt for point to point tickets. Rail passes have become very expensive. I think the last one I purchased was before 2000. They only save money on the very longest travel legs - which I suggest avoiding. Long travel legs wear you out. If you need to go more than four hours in a day, consider catching a flight - they're cheaper and faster.
I like hostels but I've been leaning toward renting small studio apartments through Airbnb. A hostel will cost you around 20 to 30 euro to sleep in a dorm room with no privacy or security. For less than 50 euro a night in most places, you can find a little studio that's has a bathroom, kitchen and sometimes washing machine. A private room in someone's home through Airbnb is about the same as a dorm bed in a hostel.
In Spain, Madrid is by far my least favorite place. It has nice museums but the city is no older than Baltimore. Save money, eat and sleep better, and enjoy much better history and culture by staying in Toledo instead.
I hate to say it but Frankfurt is my least favorite place in Germany. I've met really great people from there. The reason I don't like Frankfurt is, post-WWII, each city made choices about how to rebuild from the war. Many cities restored what was there before. Frankfurt chose to go modern and refer to themselves as the Manhattan of Germany. Lately, Frankfurt has made an effort to restore some of their old center. I prefer the old centers rather than something that resembles New York or Chicago.
If you don't live in Chicago, consider avoiding O'Hare. For cheap flights check out WOW air. They fly through Iceland into a limited number of European Airports. The planes are nice and having passport control in Iceland is a timesaver when you arrive in Europe. I've flown them twice, next one is on Icelandair, all three round trips from DC were right at $500. You might get cheaper flying during winter.