Please try calling - "ChimeOutput_SetCounter(0);" after setting the period and compare value.
As your period value is decreasing in nature and you have not synchronized the period update to the start of the PWM, it might result in you setting the period value to a lower value than the current counter value. In this case, the counter keeps counting up till it reaches 0xFFFF and then rolls over and then count. By this time you would have changed/reduced the period even further and if the sync is gone again, you will never see the PWM output.
In order to ensure this does not happen, every time you set the period, please clear the counter by setting it to 0.
Let me know if this helps - I have not tested it but this comment is more from your description and a quick look at the main. So I hope thats the issue. otherwise will try it out in a kit
Meenakshi Sundaram R