If you do not want to use blind transfers, your asterisk version must support the atxfer manager command, and you can tell fop2 to use it by setting in fop2.cfg:
supervised_transfer=1
blind_transfer=0
Another setting that must be set, but this time in asterisk's sip.conf file ( or sip_general_custom.conf file in freepbx), is
callevents=yes
Without this event, you might have issues with transfers.
In order to debug why a transfer fails, you must start fop2 server in debug mode and capture the output, and stop capturing when the problem happens. It is kind of cumbersome but the only way to find out. You can also look at the asterisk full log at that moment, and search for clues there too. Please be sure you have callevents set to yes, as that might be a probable cause of your issues.
Best regards,