I’m not sure I can help with your question directly, but since no one else has responded yet I will tell you a bit about a setup that I have used that is working for me… I don’t know if its the BEST way, but it is a way.
Not sure about your direct vs /home versions, other than to check that you have setup the Variation on the Site asset also?
What version of Matrix are you using? (Different versions do/don’t have certain features)
One site I work on we do use page Variations based on Locations, but we are not doing this using Global Session Variables. We use the “Variables” screen of the Standard Page, and have one Variation per region.
e.g. Variation 1 “Australia” is linked to using Persona “AU”.
Persona “AU” uses “Server Side Evaluation Settings” to look for a specific cookie (%globals_cookie_country% is what we named out cookie “country”), and the pattern is “AU”. For good measure, we also added in patterns of “Au” and “au” just incase they get stored with other capitalisations.
You might be able to use a session variable or something to set this cookie, but we already had a custom JS code that included the Country cookie (and more) so we used the existing cookie being created for the Country code.
Not sure this will help, but hope it might.