With two days for sightseeing, it seems a shame to limit yourself to Bacharach and St. Goar. These towns are only 10 train minutes apart from one another. There are other towns on the same side of the Rhine that are connected by train as well. In between Bacharach and St. Goar is Oberwesel:
https://www.weinhaus-weiler.de/wp-content/uploads/2016/08/DSC_2434_1920.jpg
http://www.oberwesel.de/en/wandern0/stadtmauerrundweg/
North of St. Goar is Boppard:
https://www.youtube.com/watch?v=J2IjTma6VRY
Check out the views from this nice spot near the top of Boppard's chairlift.
Marksburg Castle in Braubach (across the river) is an exceptional Rhine castle - it's completely intact, with tours in English at 13:00 and 16:00. Rüdesheim (on the Braubach side) is a popular destination as well.
I could see you spending time in the west bank towns (Bacharach, etc.) on Day 1. Do a morning cruise from Bingen to St. Goar, drop your bags there, then head out by train for the rest of the day.
On day 2, ferry across to St. Goarshausen and use the east bank train line to visit Marksburg, Rüdesheim, and whatever else you turn up.
Because St. Goar is central on the west bank and has a convenient ferry crossing - and because Rheinfels Castle ruins is right in town - and because it's a good place for ending a Rhine cruise - that's the place to stay for those getting around by train and boat.