Certainly if you can fix the AD problem and allow a graceful depromo demotion, that’s the way to go.
Failing that, one thing you can try is to disconnect the DC you are attempting to demote and run for a while. If everything is stable, DNS, DHCP and all FSMO roles transferred and there are no serious errors, you can remove it by removing AD references to it (Google ‘metadata cleanup’, I think its adsiedit.mmc) and also remove references to the dearly departed from DNS. Make sure it’s not the default DNS server and not a DHCP server (running without it will let you know quickly if this is the case.)
This kind of forced removal is part of Jeff Middleton’s Swing Migration process. I purchased his documentation and have used it on a couple of servers successfully.