OK, well... trains in Italy don't run on time, first of all. They run when they want to. That is of course, unless you're traveling on Eurostar lines. Which cost an extra few Euro, but are well worth it as there's almost always a dining car and sometimes they have service to your booth. It's 1st class for trains, essentially.
Here's a schedule based on the priorities you gave me.
Stay in Rome from sun to wed. Leave wed evening to get up to Bologna. When I say evening, I mean no later than 2pm (if you're taking the long train). Book a hotel in Bologna and stay there that night. Early the next morning, hop a train to Venezia. You can see that in a day and be back by nightfall. Hotels in Venice are super expensive and hostels are almost non-existent. I did manage to stay at one out-of-the-way hostel in Venice, but that's only if you want to spend more than two days there and you've already been there before and know how to navigate the damn place. You can make day trips out of Ravenna, Rimini, and San Marino as well. Assuming the trains run on schedule around x-mas time, (which I doubt you'll get lucky enough for) you'll still have four full days to use.
If you stayed in Bologna you can get to Milan or Florence from there and you'll only spend a few hours travel time getting to either one. At this point, you'll need to decide if you want to spend more time in one than the other or sacrifice one totally. I'd recommend skipping Milan, as Florence is WAY cooler. Since the train between the two is annoyingly long for some damned reason, if you do both, hit Milan first and only spend a day (Duomo and surrounding areas along with The Last Supper should be priority points of interest) then head on down to Florence. Stay there until you have to leave and then run down to Rome in time to catch your flight out.
Why did I have you stay in the longest places first and last? Because you'll want to acclimate yourself to the culture in Rome first and enjoy the sights and nightlife before running around like a chicken with its head cut off seeing all of those cities up north. Florence is a great town to chill out in as it's got some of the best and cheapest wine in Italy. Also, Fiesole offers one of the best views you'll have while in Italy.
Given the time of year you'll be there, I don't know if I can call any favors in for friends to take care of you in Florence or Bologna. Everyone travels back to their home city about that time. Especially the southerners as it's much warmer in Calabria, etc.
Hope this helps!