Re: DSPIC33EP ping pong DMA status register not updated correctly
Are you sure about SFR_DMA_DMAPPS being wrong but DMA2STAL being correct?
As the buffer may be swapped at any time and provided you're first reading ...DMAPPS, then ...STAL, the buffer might have been swapped inbetween.
If you reverse the read order, you might find ...STAL being wrong and ...DMAPPS being right.
Basically your approach is not appropriate: you just can't try such things in an unsynchronized manner.
PEBKAC / EBKAC / POBCAK / PICNIC (eventually see en.wikipedia.org)