No seu código, stdin proveniente do arquivo results é atribuído a while read ... e a ssh (em s1 , s2 e s3 ). ssh irá comer o que não foi lido por read no primeiro loop.
Tente salvar stdin antes do loop para uso posterior com ssh:
exec {stdin}<&0
while read choice
do
case $choice in
Server1) s1 <&$stdin ;;
Server2) s2 <&$stdin ;;
Server3) s3 <&$stdin ;;
esac
done < results
Ou use < /dev/null se você não precisar de stdin em ssh .