Off-peak fares apply all day on Saturdays and Sundays, so you are right that any relevant caps which apply to your journey would be the off-peak caps.
However, there seems to be a bit of confusion about what cap, exactly, is the right one. £16.30 is the cap for journeys entirely within the TfL zones 1–9. But Staines station is, rather confusinglyas South Western railway attempts to explain, a non-Oyster pay as you go non-Oyster pay as you go contactlesscontactless station outside of the TfL zone concept, so you must consult the National Rail contactless caps page to learn how much your fare cap is. And that page shows that, for a journeytravel starting at Staines and including London zones 1–6, the off-peak daily fare cap is £22.40, exactly what you were indeed charged.