I ran into the problem of not being able to get work or the option to buy the house from Raerek, the steward in Markarth. He would just recite his lines at me and not enter dialogue. This happened some time after I had done the quest to retreieve Hrolfdir's Shield for Jarl Igmund, after which I was expecting him to make the offer to become his thane. I had read that the player had to do a number of quests to clear out the Forsworn so I took a few more jobs from Raerek to do that. Then suddenly I ran into the problem where he would not go into any dialogue. I tried waiting a couple game days but that did not help. The inn keeper would not offer any work either. Periodically I would also check to see if Igmund would give the offer to be his thane but he never would.
Finally I decided to try a fix I read online, putting "player.setstage favor250 20" in console. I had helped enough people and I planned to buy the property so I figured making it happen was better than nothing. It did not work though. I had used "setstage" to help with bugged quests in the past so I knew the command worked. I used "getstage" on a hunch because I knew that "setstage" could not be used to lower the value. Sure enough, the Favor250 quest stage was at 200. I did some more research and found the "resetquest" command, which I hoped would resolve the issue. It did not. While it did bring the stage back to 0, nothing was really reset. Everything was as broken as it ever was and commands like "setstage" and "setobjectivecompleted" do not affect it. It appears that stage 200 means "This is just not happening," and even if you reset the quest, it cannot happen.
I actually tried a second time and avoided doing anything in Markarth (sans the Forsworn agent attack of course) except take quests from the Jarl and his Steward, hoping to avoid the need for a workaround. There was still no offer to become thane. Then Raerek stopped talking to me, so I checked again. Sure enough, the quest stage was 200. I do not know how or why this happens. I hope this will be addressed in the near future. It would not help me at this point in my current since it has already happened and I will have to go back to the earlier save again. This time I will just use the console to do it since I cannot rely on the game's script to make it happen properly. It would be nice if we did not have to do that, though, and certainly a lot less frustrating.