"Haven't you?" or "don't you?"
Solution 1:
From the wikipedia article on question tags:
The English tag question is made up of an auxiliary verb and a pronoun. The auxiliary has to agree with the tense, aspect and modality of the verb in the preceding sentence. If the verb is in the present perfect, for example, the tag question uses has or have; if the verb is in a present progressive form, the tag is formed with am, are, is; if the verb is in a tense which does not normally use an auxiliary, like the present simple, the auxiliary is taken from the emphatic do form; and if the sentence has a modal auxiliary, this is echoed in the tag.
But then later on:
If the main verb is to have, either solution (does/has) is possible
Using this rule, group 2 and group 4 would both be correct. (As an AmE, I prefer group 2 with group 4 sounding awkward to a degree approaching incorrect, but I'm unsure about BritE)
Following the same rule, group 1 would be correct and group 3 incorrect as has/have is the auxiliary verb, and so it should be used in the question. However, as a native AmE speaker, this actually runs counter to my intuition as I would prefer group 3. I have a feeling this has to do with the 'have got' construction somehow affecting things.
Edit: updated because I should have read the whole thing
Solution 2:
In British English groups 1, 2 and 4 would be accepted as grammatically correct, though group 4 examples sound outdated. Group 3 examples would be defined as incorrect.
But language is defined by the people who use it, not by grammar books. I have the feeling group 3 examples are used more and more often, as AmE use is spread even among BrE speakers. Therefore, when you hear native English speakers use the examples you cite, it's safe for you to do the same.
Solution 3:
I think all your examples are grammatically correct and would be well understood by any English speaker. It's just a matter of choice of words. It's like the difference between asking, "Does she have a dog?", "Does she own a dog?", "Has she got a dog?", etc. All are equally valid and mean essentially the same thing.
Personally I think the "haven't I" construct is a little unusual and awkward. Expand the contractions and you're saying, "She has got a dog, has she not?" We don't use this construct with any word other than "to have" that I can think of. All others we use versions of "to do". We don't say, "She runs very fast, runs she not?", or "She eats too much, eats she not?" So I PREFER "doesn't she", but that's just a personal preference for consistency. (I can think of some examples from very old books, like "You thinketh that he speaks falsely, thinkest thou not?" But I thinkest this usage is mostly obsolete.)
Solution 4:
To me the rule is that the verb in the tag question should be the same as the auxiliary verb in the first part of the sentence (affirmative or negative). This may also apply to auxiliary verbs that would be used in the emphatic form of the first part of the sentence, which may or may not appear in such part, and to verbs which can act as both substantive and auxiliary. I would say group 1, 2 and 4 are correct, group 3 is not. I understand language is in a constant process of change (see Noam Chomsky's article 'Transformational Grammar') and what really matters is to make ourselves be understood by others when we use a language. The examples to illustrate my idea of the rule are as follows: I've got a good voice, haven't I? (Have - auxiliary) I (do) have a good voice, don't I? (Do - hidden auxiliary) I have a good voice, haven't I? (Have - substantive)
In Group 3 'I've got a good voice, don't I?' it is not possible to have 'do' as an hidden auxiliary as this form is already emphasized by 'got'. 'I do have got..' would be wrong. Thus, the tag question 'don't I?' is inconsistent with the verb 'have' in the first part of the sentence.