Если проблема в том, «как найти поле выше текущего поля»:
Вы должны хранить свои pictureBoxes не (просто) как от picturebox1 до pictureBox64, но (также) как двумерный массив: PictureBox[,] grid = new PictureBox[8,8];
. (*)
Затем вам нужно выяснить, где находится это «текущее» поле в сетке. Отсюда легко вычислить, где будет находиться поле «next» (y = y + 1). Следите за тем, чтобы вы не пересекали край поля.
(*) Хотя вы, возможно, захотите запомнить больше для каждого поля, чем просто поле для рисунка, например, какой фрагмент (если есть) занимает это поле?