Welcome to the forum.
Since the cruise is important to you, it's important to tell you that it's much better to cruise more of the river than your plans call for. Bacharach-St. Goar is good, but Bingen-St. Goar is twice as long and twice as good. Here is a map of that scenic part:
https://gruppentouristik.com/sites/default/files/anbieter%202/Bingen-R%C3%BCdesheimer%20F%C3%A4hr-%20und%20Schiffahrtsgesellschaft/Rheinlauf.jpg
Also, starting in St. Goar means some wasted time - the boat chugs hard but slowly against the river current as it travels south - you will have to spend 2 hrs 40 minutes on the boat in that direction, instead of 1 hr 25 (Bingen-St. Goar, with the current.)
So... What you might do is take the train from FRA to Bingen station, hop off the train, and walk to the KD dock - it's just a few minutes. Have lunch at a riverfront establishment and then cruise (14:30) north to St. Goar (15:55.)
OR, you can take the train to St. Goar, check in, then catch the train south to Bingen whenever... besides the 14:30 boat there's a 16:30 boat as well.
You don't need to pre-purchase tickets. You'll pay €16 for Bingen-St. Goar each after your 20% discount for arriving in Bingen by train (show your train ticket at the KD kiosk.)
What are your plans for ticketing yourselves from FRA to St. Goar? There is a way to ticket your trains so that it costs you no extra money to return to Bingen if you do the check-in-first-in-St. Goar option.