As has been pointed out, Florence is the geographical outlier in your itinerary, as it stands you're having to transit in/out of Rome THREE separate times (from Sorrento to Florence, you first go through Rome), not to mention, your itinerary is constantly on the-go. Leave Florence for another trip, where you can explore more of the Northern half.
Since the bulk of your trip is Rome and South, I'd take those days allocated for Florence and devote more time to exploring the southern half of the country and/or, adding a day for the other locations; build in a down-day or, two this is a vacation not a march or internship. Most of your trip is coastal, include checking out Alberobello or Sassi di Matera.
If you're able to arrange your flights so its an open-jaw (separate arrival/departure location), that'd be ideal so you're not wasting time backtracking. Plenty of connecting flights through Frankfurt, Heathrow, de Gaulle and Schipol that go into Naples.