Properly managing a collection from deserialized XML file throughout app's lifetime
Both a singleton solution and a static instance are acceptable.  What I would recommend is that you add a static factory to Games, like:

public static Games LoadFromFile(String xmlFile);


You would call this near the top level of your application and then you would pass it into any of your other code that requires it.  It's essentially dependency injection, in that you design the code that's going to use the Games object to have it injected it.  It makes testing easier and it makes the design more flexible.