que tamaño de caracteres tienes en campo pass de la tabla
A mi me paso que como la longitud del campo pass era menor que el numero de caracteres que crea md5 cortaba la pass y cuando queria actualizar el $row[pass] no coincidian, pero era por que no entraba en el campo pass toda la clave md5.
Y tambien, no estas codificando la pass nueva:
Código PHP:
$pass=$_POST['pass'];//pass nuevo
//creo que la deberias codificar tambien
$pass=md5($_POST['pass']);//pass nuevo
Igual no es eso, pero espero haberme explicado.
Un saludo