If you're stopping at more than one location along the Rhine and Heidelberg, that's going to be a long day of driving, particularly because you'll hit the murderous rush hour of the Frankfurt-Heidelberg-Stuttgart corridor (and Heilbronn, or Pforzheim and Karlsruhe, depending on which route you take).
Normally, I would say drive the whole Mittelrhein from Bonn to Wiesbaden, but you don't have time. There's a road that runs parallel to each bank of the river on each side for most of the scenic stretch (it deviates away from the river a little north of Koblenz). From Köln, I would take the A3 Autobahn, then make the appropriate exit to Koblenz. You don't have time to go back and forth from each side of the river, so choose either the best castle (Marksburg on the east bank), or the popular towns that people on this website like to visit (Boppard, Oberwesel, St. Goar, Bacharach on the west bank). If you choose the west bank route, then from Bingen, drive to Heidelberg along A61 to A6 to A5. If you chose the east bank, follow the Autobahn signs from Rüdesheim to Wiesbaden, then take A3 again to A67 to A5. Both options are reasonably scenic, although the latter moreso.
Finally, from Heidelberg to Stuttgart, I find that it's a crapshoot between goint via Heilbronn or Karlsruhe. Neither route is all that scenic, both are usually very congested, and with the sudden traffic jams that can develope (Stau), it's difficult to predict which route will take longer. If you can understand German, check the traffic reports on the radio.
One final note to avoid getting a speeding ticket. As you drive into Heidelberg, carefully watch the signs. When you see the city limit sign for Heidelberg, even though it looks like you're still on the Autobahn, urban speed limits now apply (ie, 50 km/hr). There's a speed camera waiting just beyond to catch you if you don't slow down.