Until recently, my four-year-old daughter was unable to say "th" consistently. She'd sound right on "the", but "three" would be "free", "they" would be "dey", and "brother" would be "brudder".
For all language issues, we decided that we would teach our daughter normal language right from the get-go, and we would correct anything she got wrong right away. So we avoid "baby words" like "doggie", "go bye-bye", etc., and have just used standard terms, and whenever she makes a mistake we correct her and have her repeat the corrected form. By doing this consistently, we gradually remove incorrect patterns from her speech. We've applied this in both English and Japanese and in Chinese to a lesser extent due to the nanny not being as diligent as we are about it. When she is being uncooperative and won't repeat after us, we simply repeat it for her to hear and then let it go. We're generally not very forceful about demanding her cooperation, but she is quite used to it and generally cooperative.
Her pronunciation of "th" has been one issue that has been particularly intractable. Initially, when we tried to get her to say "three" instead of "free", I showed her that the tongue goes against the bottom of the teeth to pronounce the "th". She tried, but kept moving her lip up and making the "f" sound. After a few rounds of this, I tried physically holding her lip down so she couldn't move it up to make the "f". Doing this, she put her tongue on the bottom of her teeth and made a very spit-filled "th". I encouraged her and she did it a few more times, and even managed to get it without me holding down her lip, but ultimately went back to an "f" before not wanting to try anymore.
One time after that, as we were talking, she said "they" and then, without any prompting on my part, stopped and started repeating it, trying to get the "th" sound down. When I said it wasn't quite right, she herself held her lip down to get the "th" out, and she pulled it off. This kind of pattern played out several times. Over time, she's gotten out of the habit of needing to hold her lip down and now can say "th" perfectly.
After she got the "th" sound down, she pointed out to me that "You don't need to put your tongue on the bottom of your teeth to say 'th'", and she proceeded to make the sound by putting her tongue on the back of her front teeth. That one she figured out all on her own, but I think she was led to it by watching us say "th" words without being able to see the tongue.
However, the "th" issues are not over. She has many "th" words already programmed in as having an "f" or a "d" sound instead. Even for some words that we've practiced pronunciation on, she'll sometimes slip back into her previous pronunciation. The difference now is that, when alerted to the fact that something is a "th", she can typically pronounce them without trouble.