Sentences A and C:
You're dealing with an impossible situation here, so you need the subjunctive were.
- If he were shorter, he wouldn't have.
Don't add to be to it. This verb would express a plan or something that the subject is supposed to be doing. The were would modify the to be and mean that it would be impossible for the subject to be expected/have planned to be shorter. Just were will suffice in your sentence.
The form had been can also be used to express this, since your verb in the main clause is in the past:
- If he had been shorter, he wouldn't have.
The last one can also be changed to:
- Had he been shorter, he wouldn't have.
About B and D:
You cannot use has been here. Not only does it not correspond with the tense used in the main clause, it would express that the subject has indeed at some point in the past been shorter than he is now.
Using is poses a similar problem: It also does not correspond with the tense in the main clause and it expresses that the subject actually is shorter.