Итак что вышло: Ключевой момент это Title="{Binding AppShellSettings, Mode=OneWay}"
В данном случае разработчики по причине скорости использовали биндинг OneTime, после изменения режима биндинга можно динамически менять текст. Соответственно когда вы меняете ViewModel переключение происходит как задумано.
<Shell xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:views="clr-namespace:SpecialForcesDirectory.Views;assembly=SpecialForcesDirectory"
xmlns:code="clr-namespace:SpecialForcesDirectory.Code;assembly=SpecialForcesDirectory"
x:Class="SpecialForcesDirectory.Page1" >
<FlyoutItem Title="Main" FlyoutDisplayOptions="AsMultipleItems" Route="main">
<Tab Title="{Binding AppShellMain,Mode=OneWay }" Icon="outline_home_white_48.png">
<ShellContent Title="{Binding AppShellMain, Mode=OneWay }" Icon="outline_home_white_48.png" Route="quota" ContentTemplate="{DataTemplate views:QuotaPage}"/>
</Tab>
<Tab Title="{Binding AppShellNotes , Mode=OneWay}" Icon="outline_bookmarks_white_48.png">
<ShellContent Title="{Binding AppShellNotes , Mode=OneWay}" Icon="outline_bookmarks_white_48.png" Route="notes" ContentTemplate="{DataTemplate views:NotesPage}"/>
</Tab>
</FlyoutItem>
<ShellContent Title="{Binding AppShellInfo, Mode=OneWay}" StyleId="NONE" Route="about" Icon="outline_error_outline_white_24.png" ContentTemplate="{DataTemplate views:AboutPage}"/>
<ShellContent Title="{Binding AppShellSettings, Mode=OneWay}" Icon="outline_settings_white_48.png" StyleId="NONE" Route="settings" ContentTemplate="{DataTemplate settings:SettingPage}"/>
</Shell>