Could it be that your userlist.txt contains strange whitespaces? Do dryruns:

for i in `cat userlist.txt `
i="${i/ /}123"
echo $i
echo "useradd -p password $i"
echo; echo "Username $username password changed"
to see what would be executed. If you only change the password and do not create a new user, you should not use useradd, but usermod. These kind of things are in the manpages. RTFM!