Smartfusion2 Programmer Error
After talking to Microsemi tech support the issue seems to be the following (Taken from the ER096 Errata document ):

For the Revision 0 of the M2S090 and M2S150 devices, the eNVM needs to contain valid Cortex-M3 code. By default, SmartFusion2 parts are shipped with a default boot-up program stored at the eNVM
address 0x60000000. If this default program is no longer valid or overwritten by the user, and there is
no valid user boot code, the Cortex-M3 won’t execute to a valid state. This leads to unexpected behavior including the programming lockout condition in Revision 0 of the M2S090 and M2S150 devices.

To solve the error you simply need to run a while(1){} in the int main(){} portion of the  software.
Specifically for me, I couldn't use Libero to program any new hardware code, but I could program software code in IAR/SoftConsole (based off any peripherals I included from my last MSS configuration).
I should note that I still cannot program code in the eNVM (Whenever I attempt to include a hex file within some preallocatted memory in Libero the same Exit -31 error comes up and the board locksout. I am still talking with Microsemi to figure this out)
Update 1: After talking more with microsemi and confirming that my original code works on a REV2 board the problem is still left unsolved. This perhaps is just a one off incident that has occurred with this particular board