Firstly, it's worth noting that Tehran is important enough to have an English name. They also pronounce Paris with an English s, København they spell Copenhagen and have two pronunciations for, neither of which are anything like the Danish, and Baile Átha Cliath they spell and pronounce Dublin (okay, that example cheats a bit, but even there the pronunciation differs from the Duibh Linn it comes from).
As such, the correct English way to pronounce Tehran are those ways you'll hear in English.
It's still reasonable to say "In Persian it's pronounced more like Teh'ran with the H voiced".
As to your friend, I can't think of any better advice than to just spell it "Mehran" and tell people the pronunciation when it comes up. I can certainly symphathise, as to me the English and American pronunciation of Deirdre sounds ugly and of Caitlín just completely weird and I'm only coming from a different dialect of the same language.
I'm afraid also you may find that some of us just can't pronounce a H following a vowel. Partly because it's foreign to English speakers, and also some of us have further difficulties forming sounds and only overcame it with those we will use - I had to learn to pronounce a lot of sounds used in English with speech therapy, and still get some fricatives wrong. This therapy paid no attention to those sounds that are very rare or absent in English.