@vee41, I've read up some more and invisible sprites actually seem to do nothing to performance, so you are right.
I'm having issues replicating your array method, as it seems like every spot in my array is getting the same value for some odd reason:
I tried to convert your array code to work for my program. The catch is that yours checks the animation state, mine has to check if a sprite is invisible (as opposed to animation state), and whether there is a program sitting on it (I don't destroy the board spaces when a unit is placed on top of them, as the units exist on a layer above them and have the appearance of 'sitting' on the board spaces).
Any idea why I'm getting the same array value every time?