Your problem is - you are trying to update primary tile, but you create a secondary tile. Primary tile is always the first one.
If you update your UpdateTile()
method like this:
ShellTile TileToFind = ShellTile.ActiveTiles.FirstOrDefault(
x => x.NavigationUri.ToString().Contains("MainPage.xaml"));
the tile which was created via code will be updated.