$stmt->bind_param("s", $email)
Почему "s" если у вас там вопросительный знак и должен быть "0"? Включите вывод ошибок и посмотрите что у вас в реальности получается в sql, у вас в запросе ошибка, и я подозреваю что из-за неправильного бинда.
Нет у курла такого ограничения. Смотрите ошибки после того как получаете ответ, может сервер обрывает соединение. "CURLOPT_READFUNCTION" это у вас лишнее, минимум тут callback должен быть, а не 999
Скорее всего вам нужно будет прописать свои типы в настройках "classmap" соапа или даже в "typemap" расписать как превращать xml в объекты и наоборот в ключах "to_xml"/ "from_xml" https://www.php.net/manual/ro/soapclient.soapclient.php
Не работал с Red Bean, но подозреваю что проблема в условии, у вас проверяется только флаг dev, но нет условия по логину/айди юзера. Поэтому он находит первую запись подходящюю под условие dev=1