Você pode alterar o TCP-LISTEN:5000 para TCP-LISTEN:5000,reuseaddr , mas o problema pode ser simplesmente que, por exemplo, durante o teste você está interrompendo o ssh com Control-C e isso não está parando o socat no controle remoto.
Note que você pode evitar ter que executar o socat repetidamente para fazer a mesma coisa novamente, simplesmente pedindo a fork e escutando uma nova conexão novamente:
socat -u TCP-LISTEN:5000,reuseaddr,fork OPEN:foo.test,creat