You have 27 EDMXes in your application!?
Well ... the GetKey method on the resolver is called with the data source key name and extension. The resolver can also be exported by composition context, so you could have different resolvers for different contexts. You also know that the metadata names will always be based on the EDMX name, so for example a NorthwindIB.edmx would use a metadata string like
metadata=res://*/NorthwindIB.csdl|res://*/NorthwindIB.ssdl|res://*/NorthwindIB.msl;
So you might be able to use the data source key + extension either as your model name, or as a key to your own dictionary of model names.
That's about all I can come up with. :)