It sounds like your playing association mode and you have alot of players on your bench players that are upset with their minutes and roles. Your going to want to start giving your bench players some more minutes, and trade any highly rated veteran bench warmer that isn't getting any minutes, for a draft pick or a rookie you like with potential.
It's believe its more about how many minutes the player is set for and what their role is on the team. Starters are pretty much always going to be happy if your winning. I try to give my best starters (rated 81+), no more than 36 minutes a game. Starters rated 74-80, I give them between 30-34 minutes. The rest of the team all depends on the player's personality type, their overall rating, how many years they have been in the league, the minutes they are assigned and their role on the team.
A 64-70 rated rookie for the most part is okay with being a prospect. For the most part, it doesn't matter if the rookie is at the end of the bench and getting no minutes. As long as they are a prospect, they are good. Most will understand that they are a rookie and they need to learn the game.
The Sixth Man is okay with get anything 16+ minutes a game. I usually give this the six man role to the player with a good rating and to the player who plays a position of my least effective starter.
For players rated 65+, with more than 1 or 2 years in the league, they want to atleast be a role player. You can have as many role or bench players as you want. I usually leave the bench player role to players only use incase of a emergency, players rated 63 and lower, and are okay with getting 0 minutes. I try to have no more than 14 players on a roster. If you have 15 players, it can become difficult to manage the minutes, roles and personalities of all those players. If someone is always unhappy and complaining, and is still you a headache, no matter what role they have, trade him.