A system hold can also be released using the ap_holds_pkg.quick_release API.
You can get the sample script which works fine from this blog Oracle Applications Solutions
Before executing the script ( from APPS schema) change the hold code.
The ap_holds_pkg.quick release function will not release the following type of holds:
('DIST VARIANCE', 'NO RATE', 'CANT FUNDS CHECK', 'INSUFFICIENT FUNDS',
'FINAL MATCHING', 'FUTURE PERIOD', 'CANT TRY PO CLOSE',
'DIST ACCT INVALID', 'ERV ACCT INVALID', 'LIAB ACCT INVALID')
Even if you change the hold to a different hold type and use the quick_release procedure to release the hold, the item will not account.
I would recommend that you re-enable the distribution account. Once you have processed the accounting and sent the data to GL, you can disable the account again.