PWM_WriteCounter(value) API is valid only for UDB implementation and not available for fixed function PWM implementation. Please change the implementation to UDB in component configuration window.
Attached is updated project for PSoC5. The only difference is single line of code, where original code for P4 is wrong (uint->int):
//uint16_t result = offset + (uint16_t)(amplitude * sine); // incorrect calculation
uint16_t result = offset + (int16_t) (amplitude * sine); // OK
So, apparently, PWM duty cycle was never set below 50%.
The way PWM works, the Compare value is updated on PWM rollover, and writing Compare has no immediate effect. So ISR timing is not important - the update happens on hardware timing.
P.S. Sorry for delay, I was busy last week and now developers community is down.