Rheinfels Castle in St. Goar is a good suggestion - accessibility is good but you can do as much as you wish in terms of walking and proceed at your own pace since you're not on a tour. Also, there's a museum on site as well. The WOW element is big too; St. Goar is situated in the most scenic part of the river valley. From the riverfront you can see not only Rheinfels castle looming from the clifftops but also Burg Katz across the river and Burg Maus, further downstream. And at the hotel adjacent to Rheinfels you can enjoy a light meal with an overwhelming view at "Der Landgraf" terrace.
"Any suggestions on B&B's or hotels in our price range (100-160EU) Boppard? Bingen? Oberwesel?"
These are all in the "wow" zone. Bingen itself isn't as "wow" (in terms of attractive buildings anyway) as the other "left" Rhine-side options. Boppard is maybe the best town for wining and dining options; it's worth a visit even if you don't stay there. Both Boppard and St. Goar are great places if you will be river cruising because you can cruise the very best part (from Bingen north) and then end the cruise in either town and be "home" (no additional train connection needed.) I've stayed in all these towns at one time or another, but in your case I think I'd probably choose St. Goar for the two nights.
- situated in the middle of the most desirable old-world towns (Boppard, Bacharach, Oberwesel) to minimize driving
- Rheinfels is right there
- good location to end your cruise
- decent dining choices
- very compact town - pedestrian zone, dock, train station, hotels, and Rheinfels Castle all close in
- easy access (ferry boat) to another town just across the river (St. Goarshausen) which you can visit easily on foot
- use the same ferry to cross river for Marksburg visit
- Wine museum and tasting in St. Goarshausen's old city tower
I've rented a river-view apartment in St. Goar previously but it sounds like the Rheinhotel St. Goar should be on your list - it has a view very similar to the apartment I rented.
Oberwesel: very handsome town with nice old-town-wall you can walk. Drive to the Günderodehaus just outside town for a view and some fruit of the vine (it was the set for a well-known German TV film series called "Heimat.")
Cruise: take the train from St. Goar (or wherever) to Bingen and board a northbound boat there. It's about 1.5 hours to St. Goar. Here's a map of this area.