No caso de ter o primeiro comando configurado, a conexão que chega ao PC1 será redirecionada para o PC2 e o PC2 considera a conexão como originária do PC3 (já que o PC1 mudou apenas o destino e não a origem). Agora PC2 responde à conexão (SYN) e envia de volta um SYN, ACK para PC3. mas PC3 vai soltá-lo (Razão PC3 abriu uma conexão telnet para 192.168.0.1, portanto, a sua resposta esperada de que IP, mas desde que a conexão foi redirecionada IP de origem seria o de PC2)
No segundo caso, desde que você tenha Masqueraded o IP de origem para o PC1, o PC2 verá o PC1 como fonte de todas as conexões.
O que você precisa fazer é alterar o endereço IP de origem dos pacotes de saída no PC2 para 192.168.0.1 no PC2.
(Nota: não use o segundo comando, ou seja, MASQUERADE no PC1)
Configure isto no PC2
iptables -A POSTROUTING -t nat -p tcp --sport 23 -d 192.168.0.3 -j SNAT --to-source 192.168.0.1