If you start in Frankfurt, Berlin seems to not really fit into your route - I would maybe do it at the very end if you have time left over. Don’t dawdle in Frankfurt, it’s rather boring, mainly a place for German banks to reside in large office buildings. If they offer you Äppelwoi, don’t drink it or you’ll start your trip with a hangover. No, I’m kidding, do drink it, but be careful, the stuff is more potent than it looks and tastes like.
I’d first go to Prague (excellent castle, beer halls, relatively cheap, a bit overrun with tourists, don’t go on that boat trip on the Moldau).
Then down to Vienna (see the spectacular church, drink coffee in Austrian coffee houses, listen to the funny Austrian accent, hang in bars in the 1st district, see the Hundertwasserhaus).
Then maybe over to Budapest (have some Hungarian goulasch, bathe in the warm sulfur springs, have more coffee in Hungarian coffee houses).
Then I millionth Croatia (Dubrovnik and then the coast) - see the old town of Dubrovnik, witness some of the damages the war left, shop fresh vegetables at the Farmer’s market, buy useless hand-made trinkets to bring to your family. At the coast, take some time out to r & r, snorkel around and have some homemade slivovitz.
Then down to Greece…I think Serbia is not that exciting to stopover in - maybe you could veer over to Bulgaria, not only to visit Kyla, but because it’s supposed to be a very good place to spend your holidays. That will cost you time, though, and since you want to go to Italy as well, I’d save some time for that - Italy has so many spectacular places you don’t want to have to hasten through it.
In Greece, I second the notion to visit the islands rather than the mainland (how long did you say your vacation was?
). The mainland is mostly VERY arid, dusty and smoggy, I don’t know whether the trip to the famous Acropolis is worth it. I went to Crete last summer and visited a small village called Rethimnon, which was really nice, and not too touristy (it’s a small fishing village, but has a university nearby, which makes for a student subculture).
Then go over to Italy via ferry and make your way up. Have pizza in Sicily, then stop in Rome (try not to get run over, visit the colosseo, even if it’s touristy, see the Vatican & Sistine chapel, stay out of the way of Dan Brown aficionados).
Then upwards (maybe stop in Florence as mentioned above), stop in Salzburg (don’t do any of the Sound of music tours, you can do it on your own much quicker and less expensive; go up to the casino, have coffee and overlook the town, visit the spectacular cathedral, buy some Mozartkugeln - the original ones are sold at the little square in front of the cathedral).
By then you’ll probably be out of time (or still in Prague
), but on your way up to Frankfurt you could stop over in Munich (beer halls! church! castle! Don’t see the Glockenspiel! etc.).