It's a bit hard to guess without seeing the code.
I am very puzzled by one of your statements: How are you "clearing the array"? In general, the wire is the data, while controls and indicators contain copies of it.
So operations such as feeding an empty array to local variables of the controls or indicators just causes uneccesary resizing operations and the same memory needs ot be reallocated in the next iteration. In fact you should keep the array at constant size so its memory does not need to be constantly freed and reallocated.
Are there any uninitialized shift registers in any of the subVIs? Do you use local variables?
You might also want to set the subVIs at subroutine priority.