Первый канал работает тоже некорректно.
Всегда выполняется только этот кусок кода:
if (PMW_phase==1){ if (PMW1<255){PMW1=PMW1+delitel_pmw; }
В программе значение delitel_pmw=10, тогда получаются значения OCR1AL 0,10...240,250, а потом идет переполнение регистра и следующее его значение равно 0x04 ...