Could someone please tell me if the sentence makes sense and if it's fine, what meanings could it have? A son who's nothing like an A-student? A son who behaves like a hooligan at school? Other meaning?
Do "underachiever" or "nonachiever" mean the same?
Are they idiomatic for that? I mean, what would you rather expect to hear - I have a son who's an underachiever OR I have a son doing badly at school?
Underachiever is a pulitically keerrect euphemistic bit of nonsense. It means what you want it to mean. It presumes that a student has the ability to operate at a certain level, and is operating at a lower level. This could be due to a physical or mental disability or ailment, to classroom conditions, to poor instructors, or because of a blatant lack of effort on the part of the student. Any one or more of these might be the reasons for 'underachieving'.
If the student is earning poor grades, just say that. If the student is failing, say that the student is failing. "Underachiever" is a mushy word. It could be applied to a genius who is only earning grades of "A", when she is capable of earning "A+" in every class. It could also be used to describe a person of average abilities who is failing classes.