To answer your question about moving, bad, bad idea. Senior year is about more than baseball. Besides, the new coach won't be able to help him because he doesn't know him, and then there's the question "why did you transfer your senior year?"
It is completely irrelevant whose "fault" it is. There has been a perception created, and your son is the only one in a position to possibly change it. However, I assume by now your son has played for many coaches, and all but the HS coach would give him a great recommendation, right?
As in all aspects of life, you build a reputation. Your son has a reputation which extends beyond his high school coach's opinion. If that reputation is sterling, the coach's opinion will be balanced against that.
There are lots of players in college who did not get along with their high school coaches.