Maybe 24 bit is not the limit of the type but the limit of the method you use for checking the limit? library function for print/trace values? I suggest two things. Show the minimal testing code you have trouble with. And try the microchip forum - it is rather fast in solving such problems and is a correct place to post if you'd like to get a bugfix in next release soon.
The code is so simple as:
uint32_t test; or long long test;
But it found the problem was a simple visual issue, the disassembled code wasn't grouped so some instructions appeared before the disassembled instruction making it look as if the asm didn't belong to that instruction... but code is really correct, only a f******* visual issue together some fancy compiler optimizations that screwed things more. All solved now.
Ty to both