Why are you destroying the blocks under "secondary generation"? To give more white space? I just can't see why those events are in there tbh. You're testing for collisions that will never happen because you have the "immovable" property set for the blocks so they'll never fall. Also, you've created them in a grid fashion, so they will never collide.
Take out the events under Secondary Generation, or disable them. It works for me.
As for the placement of the player, set a random XY after the blocks are created, then check if it's overlapping a block - if so, do another random XY and so on, until it's not overlapping. Or an easier method would be to place the player at specific coords, then in your block creation events, only create a block if it doesn't overlap the player.
Hard to know if I've given the right answer. It looks like you're trying to create random platforms for the player to jump around on, in which case, my answer would be correct ;p
As for your array knowledge, it seems pretty solid to me.