Re: Can software run on different PIC32 variant?
Internally, the MX parts have the same MIPS M4K core, so they will run the same opcodes. However, because of different features, they may not all run the same code as well.
Now, in the case of what you've listed, there is one big red flag. The 550F256 and 250F256 do not have as much SRAM as the 570F512 does. On all MIPS parts, the stack grows downward from the top of SRAM, so the binary code will not work the same. Also, XC32 places the Interrupt table at the end of Flash, so it wouldn't exist if you downsize your Flash (without changing the linker script).
Now, you could compile for the 550F256, and it would work on the 570F512, but you would be "losing" half your SRAM and Flash for all intents and purposes.