Did anyone had a chance to take a look at what i am doing wrong?
I understand from your description that your implementation is very much similar to AN65974 firmware. Please test with the default AN65974 firmware before you make any changes. This firmware is tested. Once you make this work, i suggest you make changes one by one to see what is happening.
You mentioned that you are able to transfer U-to-P, but not P-to-U. Can you check if the state machines goes into this (In_data) state? (using CyU3PGpifGetSMState API).
Please use a manual DMA channel to first check if you are getting a Prod event in the associated DMA. If you do not get a prod event, then something is wrong at the GPIF interface and the master may not be asserting the control signals properly. Please check this and confirm your observation.