I gave a detailed answer earlier that somehow failed to post.
10 days is not enough time for this trip. You need two nights to get one full day in a place. A major stop like Rome, Florence etc should not be attempted in fewer than 4 nights/3 days -- 3 nights/2 days at the least. Three stops is one too many for 10 nights; any more than that is madness.
I would bag Milan -- but if Milan is a must for you, then drop either Rome or Florence or Venice.
I assume you are stuck with a round trip ticket into Milan. It would have been better to fly open jaw into Rome and out of Milan or vice verse so remember that for next time. It doesn't cost more and it saves you backtracking. But since this is what you have, on arrival train immediately to your farthest point and stay there 3 or 4 nights, the train to your next stop for 3 or 4 nights and then back to Milan for the final nights and to be there for your flight home. The arrival day after a flight overseas is a waste due to weariness and jet lag so use that day to travel on to your furthest destination. Then you don't waste a day traveling back at the end. Every time you chance cities you waste much of a day.
So one trip might be: 3-4 nights Rome; 3-4 nights Florence; two nights Venice; return to Milan for last night.
If you want to have a couple of days in Milan then 3-4 nights Florence (or Rome); 3 nights Venice; 3 nights Milan
Or something like that. By traveling to Bologne and Verona as well you end up 'seeing' things for photo ops and that is about it. The fun part of the trip is being there not getting there so try to spend less time packing and unpacking, rushing to trains, checking in and out of hotels and more time experiencing the places you are visiting.