Hello John,
Sorry for the delay in my response.
From what I can see, you have set the scope of the variable to "Individually for each event", which, in case of horse races, means the racecourse where a number of races take place that day, e.g. Wolverhampton. Thus each time you run a market from that venue, the value of the variable is overwritten.
I know this sounds confusing, but it takes its roots from the term "meeting" that BetFair uses to denote all races that take place on a particular racecourse.
To make a variable have a unique value for each market, use "Individually for each market".
Also, once you've introduced a constant with the name "high", it automatically assumes the global scope, so changing it later to a different scope using a trigger may produce confusing results. If you need to initialise a market variable, just create a separate trigger for that.
See the reworked trigger attached and let me know your thoughts. The new variable you'll need to check is market_high.