Unless you really love spending time on boats, I would not recommend that you go up the river, against the current from, say, St Goarshausen to Rüdesheim. When I was on the middle Rhein for the first time, it was kind of a spur of the moment decision, and I didn't research it thoroughly. I went to St Goar to see the castle, then decided to take the boat to Bacharach. Going up the river, against the current, the boat can only average about 7 mph. The approx. eight mile trip with two stops took 70 minutes vs 40 minutes from Bacharach to St Goar. It was so slow I wanted to get off and swim to Bacharach.
Going from St Goarshausen to Rüdesheim takes about an hour more than going the other way.
However, if you do want to stop to visit the Marksburg in Braubach, and take the only English tour of the day at 13:00, you can't get to Rüdesheim or Bingen in time to catch the last boat back to St Goarshausen at 14:15, so you will have to take the slower boat upstream.