That server implementation of the SSH protocol is completely broken.
During the authentication stage it accepts any password as valid but then once the connection is established, when a new channel is open and a command send it replies with a "invalid password" error and then asks for a new one.
You will have to experiment yourself in order to find a workaround for that.
Maybe you could run a dummy command with Expect in order to detect the bad-password state once the session is established. See how to integrate Net::OpenSSH and Expect here.