Being a bad team has no effect on whether or not his hidden ratings are higher or lower than his perceived ratings. His hidden ratings will be the same no matter what team he is on.
As far as determining what his actual hidden ratings are, this of course would be decided by the game or EA before hand. As much as we want it to be as real to life as possible, it's still a video game and a lot of things have to be pre-coded into the game. Whatever method they use to determine the player's potential rating as it stands now, could be used to determine the player's hidden ratings.
So with the proposed progression method, if the game determines a player's concrete potential to be an 85 (or B), it would then create his hidden ratings accordingly to whatever would make that player an 85. So with the no-name Lions QB, his current perceived rating after you draft him might be a 50 with a potential of D. During pre-season he plays a lot better than a 55. He's got more Throw Power and Accuracy than originally scouted and a lot more awareness. As this type of play continues, the organization constantly re-evaluates him so by Week 1 of the regular season, the perceived ratings might be a 62 overall with a potential of C.
And it works in reverse like I said with the Ryan Leaf example. He's drafted in the high first round and comes in with a perceived overall of 85 and a potential of A. However, his hidden ratings are an overall of 55 and a potential of F. You don't know this though until you play him and find out. You notice you're throwing a lot of INTs with him because of bad accuracy. So then the organization re-evaluates him and says this guy isn't as accurate as we thought, he's more of a 75 overall right now with a potential of B. Then after a few years when it's clear this guy is a complete bust, the perceived rating could be a 53 with a potential of F which is much closer to his actual ratings because you've now had the time to evaluate him and see what he can and can't do.