Off the top of my head, I would guess the difference here is that the WAB widget just pulls a list of basemaps available in the active Portal / AGOL org. You might try adding a "test" basemap to your Portal and see if that basemap is visible in the gallery in AGOL; I suspect it will not.
The basemap switcher, on the other hand, is configured to toggle with a specific map. In the JSON definition of the app, the basemap is being referred to directly by ID, which would not carry over to AGOL.
Can you pull the JSON for the app in both places and see?
Open your browser's developer tools and watch the Network tab as the app loads, then look for something like
https://YOUR-PORTAL-URL/portal/sharing/rest/content/items/ITEMID-OF-APP/data?f=json&token=SOME-TOKEN
Or else, just browse to the portal/sharing/rest/content endpoint, if that's easier for you.
Either way, at the end of the JSON, you'll find something like this:
"basemapSelector":"SOME-ITEMID"
- Josh Carlson
Kendall County GIS