FX3 can support a maximum of 31 endpoints. Please share the descriptor file that you have used for enumerating 4 endpoints.
Here are the descriptor files and the whole project. My device used the USB3.0 interface. At the beginning, more endpoints can be used but as the code increasing I can only use 3 endpoints. I want to know if the recourse of the RAM isn't enough or other reasons.