What about just retiring then un-retiring? Would that help at all?
I just tried it, and DF died on saving the retired fortress (both with and without DFHack)... so there's no save to unretire. It's only one world, though, but still an indication. Wouldn't exactly be surprise if DF is unable to package up the corrupted data.
Abandoning worked, though, and reclaiming with default embark parameters worked (with the surface being an absolute mess of items once inside the fortress, as well as an immediate "ambush" from the locals). Initially the specific equipment in all categories except weapons were empty (as nothing was brought). Reclaiming the junk on the surface populated the lists with legal items (no corruption seen) in all categories except shield (empty) and weapons (standard tools only still). Presumably the shield and weapons are inside the fortress down in unrevealed areas. Thus, embarking afresh might work, as might abandoning/reclaiming (assuming you're prepared with the mess that's involved with reclaiming, but I guess you can send off all citizens except one to other places (unless they have offsite kids) before abandoning so you don't have to slaughter the locals on reclaiming.
Regarding the structures Roses mentioned, they seem to be used for squads, and I assume DF crashes when DF tries to place an unsuitable object in those structures. We probably need to get at the lists from which DF selects those items to DFHack around the issue.