Another approach would be to design assignments in such as way as to have the feedback and makeup exercieses built in. The assingment can have different aspects or sections. If the student does poorly on one of these, then they would be given the chance to make it up with a supplementary exercise, which might be longer but more gradual and more instructive. In this way, students are given more feedback without requiring a retraining of all the TAs.
Again, the archive can be datamined to see how students progress. If the poor grade in one assignment can be linked to poor progress in another assignment, this information can be used to judge what students are having trouble with and thus to generate ``make up" assignments to fill in the gap. This would require some static code analysis as well as the application of datamining techniques.
In addition, style performance can be judged, and an attempt can be made to link certain style mistakes to further degradation in progress. And, again, an exercise can be designed to address these weaknesses in future classes so as to try to prevent students from making the same dangerous mistakes twice.