How to allow user to manually change language when using "Browser" Detection as a detection option?
The Selected language option comes with this description:

Changing the selected language here (and leaving this option as the last among the detection and selection options) is the easiest way to change the fallback language for the website, if you need to change how your site works by default (e.g., when using an empty path prefix or using the default domain). Changing the site's default language itself might have other undesired side effects.

This option is meant to be the last on the list and used only as a fallback.
If you give Browser option advantage on the list by placing it above the URL option the language will always be chosen by the browser criteria.
I'm guessing that there are cases where browser language might be not available in which case the URL option will kick in, but in most cases the URL option will not be used because Browser option will set the language and no options that come after it will even be evaluated.
It seems you need the Session option before the Browser option. This option should work with the Language switcher to add the parameter in the URL that will set the chosen language, but before the user selects something from the dropdown the Browser option will set the language.
Turn the URL option off completely if you don't need the language prefix to avoid confusion when the parameter is present. Having too many options turned on complicates the system unnecessarily and makes it more difficult to figure out what the causes are if there are bugs present.
I haven't tested this configuration. Language configuration can be tricky and you may need to do more adjustments and testing to get to where you want to be.