In your new custom firmware, After you call the CyU3PConnectState (CyTrue, CyTrue); , force a USB Disconnection by calling CyU3PConnectState (CyFalse, CyFalse); and then again call CyU3PConnectState (CyTrue, CyTrue);
Hope this helps.
Finally, I was able to make it works ! Part of the problem was the python script which upload only some bytes in some sections (overflow of an uint16 vs uint32). Some events where also not handled in the firmware. Now it works without any issue.
Thank you for your help,