I resolved the issue, it was because there were two entries for the same user_id under ost_user_account. I purged the new entry, set the passwd field to null, set a username, and set the backend to match the other working ones (in my case ldap.client). Now it's working as expected.
Edit: Here's a quick way to find these duplicates in your SQL:
SELECT * FROM osticket.ost_user_account GROUP BY user_id HAVING COUNT(user_id) > 1