Veo que lo haces todo estático, sería mejor de forma dinámica, pero eso ya es otro tema
Supongo que has verificado que el método con el que compruebas el jugador de una casilla es correcto, ¿no? A ver si lo estás haciendo bien pero la comprobación mal :D
¿Como inicializas los valores X e Y de la clase casilla? Al hacer un getX te funciona, ¿Al hacer un getY también?
O se me está pasando algo (que puede ser) o no veo nada raro en lo que haces.