depends on his attributes.
player's best role is dependant on his key attributes for one role being higher than any other. should you train a player to improve other attributes, once they are higher, the player's best role will change iirc
I've seen them change. I have my screen on player choice for a match set-up so it'll show me a player's best role. I've seen it change from one game to the next if a player's stats have changed slightly.