Michael,
You seem to misuse event structures solely as a way to get at the current and previous values of an indicator. This does not work! Events are only triggered by user interaction on the front panel (for good reason!), not by a programmatic change as you are trying to do (Well, there's also writing to signaling properties, but that's a different chapter ;))
To get previous values, a shift register is the way to go. A shift register is also a great way to store variables to be incremented, eliminating local variables.
I have dabbled around a bit in your VIs and it seem to me you are trying to do things way too complicated. Your two big loops in run.vi can be combined into one and one set of notifications eliminated. There is no reason to put two code segments into two different loops, then lock them together via notifiers, because they would execute synchronous via the notifier dependency anyway.
For efficiency, you should also worry a bit more about data types. Some if your subVIs require I16, but their inputs are set to DBL, then you feed it an I32 when you call it on the diagram (See for example your calls inside setup.vi).
Notice that inside setup.vi you are running three identical FOR loops in parallel. There is no reason to do so, because the called VI is not reentrant and thus can only be called sequentially anyway. You can combine it all in one FOR loop. Also the local variable is not necessary, the wire is right there.).
I've done some simple modifications (All Vis end in "01"), have a look and let me know if anything is not clear to you. Good luck!
🙂There could be bugs, because I cannot test without your hardware. YMMV.