I believe this is a known issue. Instead of putting the MenuFlyout in-line, create it on the click event:
private void AppBarButton_Click(object sender, RoutedEventArgs e)
{
MenuFlyout mf = (MenuFlyout)this.Resources["MyFlyout"];
mf.Placement = FlyoutPlacementMode.Bottom;
mf.ShowAt(this.root);
}
See if that works.