This is 100% your son's fault, and 100% your fault for enabling him and not teaching him accountability for actions.
A kid with ability and a bad attitude will wreck a team. If your son is unwilling to change his attitude issues, how much does he really care about playing?
Saying a coach didn't select your kid due to "personal feelings" is a cop out. His "personal feeling" may be that your son has a crappy attitude.
And another piece of advice would be not to be hung up on a "D1" offer. If he can play immediately at a D2 or juco than that is most likely a better place for him to be. If a D1 hasn't offered yet, he probably isn't a big piece of their immediate future his freshman year. The D1 label is often an ego thing. Doesn't mean it will give him the best shot at advancing his baseball career.