Мне в такой же ситуации советовали делать программный SPI. В этом случае, можно вплоть до каждого байта отследить что происходит на линии. Я не послушался, так что не знаю, как оно. Заработало само.

Мне кажется, полезно лишний раз СС-ке назначить режим IDLE, увеличить паузы между байтами, уменьшить частоту SCLK... Надо точно знать, что микросхема рабочая.
В даташите на СС конкретно прописаны требования в форме сигнала SPI, но раз приходит не то, что записано, значит режим, частоты, амплитуда SPI неправильны.
Насчет программатора: а может он запитывает всю схему слишком большим напряжением ? или слишком малньким ?