Just some observations:
From my understanding, it looks like latch enable (Channel 2) is your CS line which is continuously held low and never goes high to end the transfer which prevents the chip from being programmed.
dmaspi.ino from GitHub says "a year ago" and this sketch is always controlling the CS (pin 10) independently with digitalWrite. However, Arduino (newer 1.5X versions) already automatically controls CS so it looks like this could create a conflict (especially if line 3 is changed to #define USE_ARDUINO_SPI_LIBRARY 1)
33.7.3.9 Peripheral Deselection with DMAC (page 691 in the datasheet):
It looks like there's some relevant info here as to why NPCS does not rise in all cases.