Faking an injury to avoid performing duty is actually a specific charge under UCMJ. There is no statute of limitations that I am aware of, though since he is out now, he is probably not touchable for that. However, obtaining Federal benefits by fraud is certainly a crime, though proving the intent might be tricky.
Interestingly enough, obtaining a discharge through fraud would be hard to handle, because as a civilian it's difficult (not impossible, but very difficult) to punish under UCMJ and because there is probably not a part of the USC that covers fraudulently obtaining a discharge from the Armed Forces. While he might lose his benefits, I doubt his former branch would want to go through the bother of a General Court Martial. Perjury would require evidence that he knowingly lied about his injuries directly- that would be very difficult to prove, though I suppose it would be possible if he's dumb enough.
Overall, good luck getting this guy punished.