What strikes me in your itinerary is that you are counting on full days in places where you actually have to allow time for changing locations. For example, arriving in Milan on the 31st, you will be lucky to be settled in Verona by mid-afternoon after allowing for passport control and transit. You will be jet lagged, co about all you can do is take an orientation walk and have dinner.
With the CT, you have one full day as it will take most of the 3rd to get there from Verona. If you reorder and go to Florence first then the CT, you will pick up some efficiency. You will barely have time for day trips, so make those flexible, based on what you discover, what your energy level is, and the weather. By all means add the extra days! This is the order I would travel in.
Verona - 4 nights with day trip to Venice. Venice is far more interesting than Lago di Garda and it is hard to “do” the lake without a car.
Florence - 3 nights and probably no time for a day trip as that only gives you two full days in a rich city, but maybe if you leave Verona early and get to Florence before noon you can fit in a day trip.
Cinque Terre - 2 nights, barely enough but you will see it and maybe not too crowded in April
Rome - 4 nights, maybe a day trip but don’t rush it. Rome is complex and rich. Take some time to enjoy it before you leave. This is really only 3 days in the city by the time you arrive from the CT.