I found a fix. For Gene6 FTP server, open ports 50000 - 50100 in pfSense.
For IIS FTP on 2003 Server enable the direct metabase edit. Then cd\Inetpub\AdminScripts and run adsutil.vbs set /MSFTPSVC/PassivePortRange "5500-5700" and then open the ports in pfSense. Restart the FTP service. You can use whatever high ports you want, not just 5500-5700, they're just an example.
For IIS FTP on 2000 Server, make sure you have SP4. Use regedt32.exe to locate the key *HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msftpsvc\Parameters* and add a value named PassivePortRange of type REG_SZ. Edit the entry and type in your port range and open the ports in pfSense. Close the registry editor and restart the FTP service.
Other FTP server applications should be similar, but I only use and know these well since I'm an MCSE.