1. The comma is correct; it's the convention for dialogue punctuation in fiction. I suppose this holds true for film-quotes, too.
2. Generally, there are two ways to treat "Dirty Hairy" (shouldn't this be "Dirty Harry"?):
Apposition: ...in Clint Eastwood's 1971 film,
Dirty Hairy, ... (what you did with "Harry Callahan")
As head of a noun phrase: ...in the 1971 film
Dirty Hairy...
Only the appositive use takes commas, but then you'd have to make one after "film" as well. This sounds strange to me.
This is how I see the subject of your sentence:
Clint Eastwood's Character, Harry Calahan, in the 1971 film
Dirty Hairy = Subject.
OR
Clint Eastwood's Character, Harry Calahan, = Subject // in the 1971 film Dirty Hairy = another adverbial clause ("with... thief" is the first one)
If the former, the sentence could read like this:
With his oversized gun drawn and pointed at the head of a hapless thief, Harry Calahan, Clint Eastwood's Character in the 1971 film
Dirty Hairy, uttered his famous catchphrase, "..." (Pretty much what Marius Hancu did, come to think of it, only I made Harry Calahan the subject, and the character-phrase the apposition.)
If the latter, it could read like this:
With his oversized gun drawn and pointed at the head of a hapless thief, Clint Eastwood's character, Harry Calahan, uttered, in the 1971 film
Dirty Hairy, his famous catchphrase, "..." (This is so awkward, though, that I'd prefer the above version, even if the original intention was to say that Callahan uttered the phrase in
Dirty Hairy, and not in any of the other "Dirty Harry" films.)
I don't think anything's wrong with the punctuation in your original sentence, though.