A couple thoughts I had:
1. Limit to one player swap per week? Actually I don't like that after writing it.
More importantly:
2. Set player salaries not off real contracts but off last season's results. SO like 90th percentile is 5mil, or something, etc. Doesn't rely on people handing out bonuses and means you can predict who will improve and get them for cheap in the season before they do.