However, this seems to be a very complicated and inefficient system.
If you are making a grid of blocks, consider using a TileMap. Or, if you need to do it with sprites, use a pair of variables GridX, GridY. This way you can easily pick a neighboring block on any side, or even on a diagonal. For example, to pick a block on the right: GridX=(CurrentBlock.GridX+1), GridY=(CurrentBlock.GridY)