We live in Europe and have taken various Med cruises when the kids were younger (I think my younger son was six or seven on our first trip). Both kids enjoyed it and it really was no problem. Of course I did gear our activities to things that are fun for kids so it may be somewhat difficult to find a balance between a kid-friendly vacation and a "once in a lifetime" trip.
We mostly went with Royal Caribbean and were happy with it. Lots of activities and both boys enjoyed the kids club (though younger son did not want to go on our first trip so it will depend on the child).
Personally, if going with a small child, I would probably not go for the most expensive options (for hotels, ship etc.) and plan on maybe going again in a couple of years. I do think that in any case it puts a lot of pressure on a trip to try to make it perfect/complete, even without kids. For example on one of our cruises Athens was cancelled without much warning. I am sure this was a bucket-list item for many and led to a lot of disappointment but there was nothing to be done.
As far as what to see, it does depend on personal preferences. Here is what we did and my thoughts on it (Not all the same cruise):
Rome - definitely a must see, fun for kids as well, easily done on most cruises. recommend to either start or end your cruise there
Florence - kind of a long drive from Livorno. Many of the main attractions aren't geared that well for kids so it may be difficult to see all you want to see there with a child. We did more low key stuff and enjoyed it.
Naples - Pompeij is great. Easily done and quite fun for kids. On another trip we went to Capri which also was wonderful.
Venice - definitely a great destination but with the recent restrictions for cruise ships more difficult to manage. I would recommend beginning/ending the cruise in Ravenna etc. and then spending a day or two in Venice before/after flying there/back
Athens - personally not a great fan but definitely something one should see once
I would try to get a good mix of cities/churches/ruins/nature/beach. That way you can avoid the feeling of "oh, some more ruins" or "which church is that again".