We developed a solution as part of https://apps.odoo.com/apps/modules/16.0/website_user_types/
The module makes the website menu tree visible outside debug mode. In the menus' form you can restrict a menu to specific website user groups, e.g. B2C and B2B. The important part is to consider the menu caching, too! In Odoo 16 the menu is cached and group visibility is not going to be recalculated without extending the t-cache. This can look like this:
< template
id="layout"
inherit_id="website.layout">
< xpath expr="//header/t[@t-cache]" position="attributes">
< attribute name="t-cache" add="website.get_website_user_group_cache_key()"/>
< /xpath>
< /template>
Depending on your use case you might add more groups. For us, the user groups fulfill the requirements.
Did you figure this out?
@Matthew Harrison Yes, we did, see my answer below.