The fundamental difference between OpenFOAM and FreeFEM/FEniCs is the underlying approach in discretizing PDEs. OpenFOAM uses a finite volume method whereas FreeFEM and FEniCs employ the finite element method. Historically, finite volume methods were chosen for stability, but finite element-based CFD is what most research groups focus on (based solely on personal observation) because there's a lot you can play with to improve the method. For a more involved discussion on the differences between the two methods: differences between FVM and FEM.
Each of these codes are open source and have development as well as user communities. I'm sure someone has done Fluid-Structure Interaction (solid-structure coupling?) problems in OpenFOAM. FreeFEM advertises that capability on their website. Likewise, FEniCs can probably handle it as well.
I think you need to specify why you need this type of software.