Во-первых $mypassword не участвует в SQL-запросах, поэтому его НЕ НАДО экранировать, этим вы портите сам пароль. Сами подумайте, текст пароля
aaa\'bbb
совпадёт с оригинальным паролем
aaa'bbb
?
Во-вторых, просто сделайте в блоке else{} такой код:
$salt = strstr(strstr(strstr($row['password'], ".", true), "\$"), "\$");
error_log("PHP: Password: '{$_POST['password']}', '".password_hash($_POST['password'], PASSWORD_DEFAULT, array('salt' => $salt))."' != '{$row['password']}', salt = '{$salt}'");
и смотрите error.log вашего HTTP-сервера, сравнивайте хэши паролей. Думаю если в шифровании что-то не так - сами поправите код.