La diferencia es que si compilas en debug el código ejecutable queda con unas 'marcas' (llamadas símbolos de compilación) y se genera un archivo de depuración adicional, el compilador haciendo uso de esta infromación te permite ejecutar el programa paso a paso verificando los valores de las diferentes variables , propiedades etc que estén involucradas en el programa.
La entrega final de un programa debe ser en Release porque ademas el código generado es de mayor calidad y es mas rápido.
Para solucionar tu problema prueba yendo a la opcion de volver a generar toda la solución, o sino, puedes borrar la carpeta obj y la carpeta bin.