No, this isn't a problem of 'aliasing', where a variable
refers to an object rather than
being an object. The only code where the array of objects changes value is here:
For n=0 To colourCount - 1
For m=0 To EGGSEND
Dim c, t As Int
t = {calculated value}
c = {calculated value}
stack(n,m).Initialize(t, c)
next
next
where {calculated value} is a function that calcultes the value from a string, not relevant to this problem.
Stepping through the code, initially, stack(0,0) has the correct value of (0,0). However,
sometimes, when n=1 and m=0, stack(0,0) returns to its previous value of (1,2). This is not a consistent problem. At other times I have run the code and stack(0,0) keeps its value. It depends on whether the player of the game got very far in the game before restarting it.