"best position" may not be the ideal term. Something like "suggested position" might be a better term, which means it would help you sort out your players.
Since there are only 5 players on the court, and the court isn't very big, positions are relatively fluid. A player can play outside like a guard on one possesion, and inside like a forward the next. If a player's skill set is limited, he is easier to guard, or his lack of certain defensive skills can be exploited.
BB calculates the "best position" based on his current skills. It calculates how he plays in a game based on which position he is assigned in your lineup, what tactics you use, his opposing player on the other team, and his current skills. His training is also based on his which position he actually plays, not on the "best position".
Let's imagine that BB grades each player on how well he would do at a each position.
Let's say that your player was graded at 91 as SG, and 90 as a C. BB would call him a SG. You might have another player who is 70 as a SG and 80 as a C. BB would call him a C. But the player who was 90 as a C, would do better in games playing at C than the other player.
In your case, your player's skills as a C and SG were fairly even. You trained him in something that just tipped the balance a bit. That little bit of training may well help him perform better as a C, but even more of an improvement at SG. If you were to train him in IS or ID, he would likely switch back, or he could even switch to SF or PF.