Option 1 -> Incorrect matching: (A) requires infinitive "to give" after "promised", not simple past "gave".
Option 2 -> (A)-(III): "promised to give" (infinitive after promise); (B)-(I): "have given" (present perfect for completed action); (C)-(IV): "had been giving" (past perfect continuous for ongoing past action before termination); (D)-(II): "gave" (simple past for habitual action).
Option 3 -> Incorrect: (A) cannot take "have given" after "promised"; needs infinitive form.
Option 4 -> Incorrect: (D) should be "gave" not "had been giving" for habitual actions with "always".
Hence, Option 2: (A) - (III), (B) - (I), (C) - (IV), (D) - (II) -> The verb "promise" requires an infinitive form (to give); "have given" shows present perfect for dedicating years; "had been giving" indicates past perfect continuous for ongoing trouble before termination; "gave" suits habitual past action with "always" -> correct