Sorry for delayed reply; life gets in the way sometimes...
That should be more than enough time to see everything.
Calgary's an interesting city with a fun light rail system, though I'm not sure I'd spend that many days there. I highly recommend the Calgary Heritage Park; they run steam quite a bit and have a huge Selkirk 2-10-4 parked out front.
Banff is beautiful year-round, and takes on its own spectacular winter glow in the snowy months. Be aware that pretty much all roads and trails will be closed, so you'll be limited to whatever is open (I haven't checked).
I can give some info on photo spots and angles if you desire.
Outside of Calgary, Edmonton and Vancouver, public transit is basically nonexistent. That means unless you're taking a national parks bus tour, you'll need to drive yourself everywhere. And in December and January, that means driving in lots of snow and ice, which will occasionally cause highway closures and make travel difficult. You can certainly get out there and see almost everything, but it's something to be aware of. Always have plenty of fuel, food, water, and warm clothing. Don't expect to have mobile phone service, as there are many places in the mountains where you won't have it.
I highly recommend the train between Jasper and Edmonton, but it's better if you take it all the way from Vancouver. Jasper National Park is similar to Banff in its grandeur and train-watching potential, so I'd definitely find time to fit it in.
Edmonton is a lot like Calgary, a fun city with a great little transit system.
Other highly recommended trips are the Jasper-Prince Rupert train, the rail museum in Prince George, and the ferry ride between Prince George and Vancouver.
Railfanning in Vancouver is best at Braid Jct, Mission, and sometimes New Westminster. Most people head up the Fraser River Canyon to do most of their photography, though. The stretch between Hope and Kamloops Lake is fantastic.