Arduino does not recommend to program the Due board via Native port as it is not reliable:
If the MCU crashed for some reason it is likely that the soft erase procedure won't work as this procedure happens entirely in software on the SAM3X
Unfortunately Arduino doesn't say what is crash and how to solve this issue if your home made Due has only the Native port.
I have only several assumptions but not sure that they are correct.
The Arduino Due boot-loader starts only if the Flash is not programmed. If the code is programmed to the flash but is damaged the boot-loader will not start. As the MCU is hanged it can not erase the flash.
What can be done in this situation?
Just push the erase button on the board. It will the erase the content of the memory and allow boot-loader to start.
Now the programming via the Native port should be possible.
Please correct me if I'm wrong.