Нет ничего плохого в предоставленном коде, за исключением того, что он утверждает, что делает желтые пиксели, когда он фактически делает пиксели чирка. Вот он модифицируется и работает, делая желтые пиксели:
http://jsfiddle.net/TCf6f/
Код на вашей веб-странице работает, когда вы устанавливаете точку останова в отладчике Chrome, в частности он поворачивает холст, как указано в вашем коде. Кажется, он не работает, когда нет точки останова, и я предполагаю, что виноват размер CanvasPixelArray. Что происходит с меньшим холстом?
Что страннее, иногда вы можете установить точку останова и увидеть, что операция частично работает, как здесь:

С более ранними контрольными точками все становится правильным.
Если холст меньшего размера работает, попробуйте изменить массив пикселей в 4 или 8 блоков и посмотрите, что произойдет.