In Portugal (and some parts of Brazil, I guess), you would use «teu» whenever you would address the person as «tu» (friends close to your age, close family members, etc.) and «seu» whenever you would address the person as «você» (higher rank/older than you) or when you are talking about him/her. Yes, context resolves everything. «O Tiago deixou o seu casaco em casa.» = "Tiago left his coat at home."
if you address the person with você you should use "seu" (since grammatically it's a third person construct, like ele/ela). If you address them with "tu" then you should use "teu".
As far as I understand "tu" is fairly uncommon in most places in brazil so they probably don't use "teu" very much.
In Brazilian Portugese, would it be correct to say "É um teu cachorro" (it is your dog)? Or is teu more used in Portugal? I think I recall hearing that somewhere. If that is correct, then what would Brazilians say? "É um seu cachorro"? Or "a seu"? Or am I completely on the wrong track here?
first of all, it would be "É teu cachorro". But the truth is that even brazilians get confused with teu/seu. I think in the south part of Brazil people say more "teu" than the rest of the country but it means nothing. The advantage of knowing which one to use is to avoid ambiguity. "teu" only means your, meanwhile "seu" could be used to your, his, her, its.