LevelArray.Clear() sets every element to zero.
Pointless to use push after that.
Or the array had the size (0,1,1), then push will work as expect, but the clear is pointless
Or the array has elements (10,1,1) then the push will make a 11th X index, clear and push are pointless.
Instead of clear, set the size to (0,1,1). That is a truly empty array.
The AsJSON does not contain the graphics. An array with the AsJSON strings is not enough.
Creating an member from a family creates a random member.
So, the family needs an instance variable identifying the member.
That variable needs to be stored in the array too.
After loading the array, while running trough it
you will have to create/destroy a family member (in a while loop) until it matches that variable. That is not easy, and can eat time. Then set it to the AsJSON string.
Create the correct sprite (not family) depending on that variable.
That is just a lot of events, 1 creation event for each possible sprite.
Compared to that, Newt's solution is a breeze.