You may have to rewrite the code, but first open a blank VI, goto its block diagram, and try to place your bad VI as a subVI. You may then be able to open the block diagram. If you can get this far, copy the diagram to a new VI.
None of the obvious things work, including mass-compile and what you suggest. What I was after was if NI has some tool that can try to repair broken VIs, but that apparently isn't the case.