Some of the differences in salaries may be due to how players are classified, which might not be the same as their utility.
PG are classified based on having better passing/handling than shooting skills. So players with both sets of skills may end up being classified as SG, with high salaries. And players with OK passing skills, and mediocre shooting are classified as PG. If you had a PG with exceptional passing skills, and training his shooting, his salary would increase, but he might change classification to SG.
Similarly, forwards are classified as such on the basis of their jump shot. But they might have lesser inside skills, and the JS stands out a bit, but they don't get paid for mediocre inside skills. SF also have a relatively weak IS, which appears to be the prime distinction between PF and SF. So if you were to train a SF in IS, his salary might increase, and his value as a SF might increase, but BB might start calling him a PF.