Using local scopes in SystemBase.OnUpdate can cause captured variables to silently get wrong values

I just realised that you already worked out and said pretty much everything that I worked out. Sorry! I had to go through it myself to fully get my head around it.

There’s probably some obvious reason why we can’t transform the references between the display structs into pointers, but I haven’t worked out what it is yet.