static float PulseDirection;
is what is causing the issue.
Static variables are like globals. Imagine you made a global variable called
float g_AMainPlatform_Tick_PulseDirection;
But that global can only be accessed inside the Tick function.
No matter what instance accesses it the value same value is passed to every instance.