I've entered the recall freeze without scripting.
I think the issue is that you try to move before the server catches up.
I think you need to add a wait after you use a book. I have, and I think most scripts,
wait for your #charposx/#charposy to change then it assumes you've recalled. I think those numbers can change, then your script tries to move or do something, and that bugs the client. I think if you add a wait after the check for recall success, you should be good to go.