.. choice of a legacy language that's not appropriate for a NEW application, project manager's lack of management, and the fact that the only part of the application (20% of it) that has been developed lacks a number of very basic features, has a very large number of bugs, and has taken an inordinate amount of time to complete.
Whats the legacy language - why did your client hire this contractor and not you? If there are no penalty clauses in the consultants contract - he might be able to force collection for the entire project. A client of mine told me about two such experiences. One was eight months worth of attempts. The contractor simply admitted the delivery was beyond his skills and they let it drop. The contractor
Beware of fair trade practice laws. As long as you did not suggest to your client that there was a problem and as long as the contractor cannot demonstrate your "meddling" was the problem - everything should be hooke-dokee:-)
Imagination is more important than knowledge