変ですね。20,21だけで接続できるのはactiveだけの筈ですが。
クライアントからPASVと送ると、サーバから
227 Entering Passive Mode (192,168,1,1,156,64)
というような応答があり、ポートは「サーバが」指定します。上記の文字列の最後から2つの数字が0,20であればポート20,21だけで接続可能ですが、transmitの時だけそうなるというのは殆どあり得ないことです。transmitは、passiveで接続しようとしてタイムアウトした場合、activeにフォールバックしているのではないでしょうか?確か、transimitではコマンドログが見れたような気がしましたので、PASVに対する227の文字列を見てみては如何でしょうか?
それに対し、FFFTPの挙動はまさにpassiveの動作そのものであるように見えます。
それから、1024〜65535を全部空けてしまうのは、セキュリティ上あまり好ましくないと思います。passiveでのデータポートは「サーバが」指定するものであるので、ftpサーバの設定で制限されてしかるべきです。1024以上のポートからランダムに選択するようにハードコーディングされているなどというのは明らかな手抜きであると私は考えます。
例えば、RedHatなどで採用されているvsftpdでは、confに
pasv_max_port=5000
pasv_min_port=6000
と書けば、5000〜6000のポートを空けておくだけでpassiveが成り立つように設定できるのです。