Creating a duplicate button for multiple entry field collection field
I think you should be using the Replicate API for this purpose. The module provides an API to duplicate entity along with many hooks. It's targeted towards developers however there are several modules build on top of it.

With respect to your use case, there is an implementation for supporting field collections. I think it will be the closest solution for you what you.