The "best position" is more a suggested position. It is actually calculated each week and can change.
With only 5 players on the court and a fairly limited playing area, player roles in basketball are not rigid. A player might play inside one time down the court, and further outside the next. So the difference between a C and a PF is more a matter of probability than certainty where they will be.
How a player does in a game is a matter of where you position him, your tactics, his skills, and the other team. Likewise, training is based on where a player plays in your games. A player can play multiple positions in a single week, or even within a game, so his minutes at each position are what matter for training.
It is quite possible that your SG is a better SF than a player who's best position SF. "best position" might actually mean "least worst position" for some players.
In general, BB tends to be a little short of players whose "best position" is PF, SF, and PG; so it is fairly common to play someone whose best position is "C" as your PF. If you do this, you may want to check a player's skills. If a "C" has an atrocious JS you might not want to play him as "PF", but you might be able to get by if his JS is mediocre. Similarly, if you play your a SG as "SF" he probably will need some ID and if you play him as a "PG" he will need some passing and handling.