Early release "for good behaviour" has been ruled unlawful as it effectively takes punishment away from properly-constituted courts (which are entitled to impose punishments under human rights legislation) and places it in the hands of prison officials and/or politicians (who aren't permitted to impose punishments). So, unless a court has ruled otherwise, prisoners are now automatically released half way through their nominal sentence.
For an appeal against sentence to be successful it would be necessary to show that the judge failed to take something relevant into account (either because he wasn't doing his job properly or simply because he was unaware off something which could have affected his decision) or that the sentence was manifestly excessive.
Given the range of available sentences for Section 18 offences, there would seem to be no chance of showing that the sentence was 'manifestly excessive'. (4 years is very much at the lower end of sentences for 'GBH with intent'). So any appeal would almost certainly need to focus on a possible error in the way that the judge determined sentence.
See page 5 of this document to see the range of sentences which were available to the judge:
https://www.sentencingcouncil.org.uk/wp-content/uploads/Assault_definitive_guideline_-_Crown_Court.pdf
The sentences shown in that document relate to an offender who has been convicted after a trial. Where an offender pleads guilty at the earliest opportunity those sentences can be reduced by one third. Where, as in your son's case, an offender pleads guilty to 'Section 20' but not guilty to 'Section 18', but is then convicted, a judge
may regard the fact that the offender only pleaded 'not guilty' solely on the advice of his legal advisors as meaning that he can still reduce the sentence by one third; however he's not obliged to.
So, if the judge regarded the offence as 'Category 2', decided that a 6-year sentence was appropriate but then reduced it down to 4 years because of the 'guilty to Section 20' plea, there's not much scope left for further reduction.
However if the judge regarded the offence as 'Category 3' and imposed a 4-year sentence with no reduction, it's possible that a decent barrister might be able to argue that he should have knocked a third off that sentence (taking it down to 32 months).
It's also possible that the judge might have been unaware of relevant 'evidence of good character' at the time of sentencing. I contributed to the appeal of a guy who was sentenced to 18 months imprisonment, telling the court everything positive I could think of to write about him. He got his sentence reduced to 18 months.
So an appeal against sentence might succeed but, given that the existing sentence is already near to the bottom end of sentences for 'Section 18', I wouldn't be too optimistic.