Hi Justin
For Q1, you should say "唔該" to A, because A has done you a favor by bringing you the gift. Then you can call B to say: "多謝你嘅禮物"(Thank you for your gift). We say "多謝" at the moment we receive the gift. At other times, we have to specify what we are thanking for.
For Q2, you could say: "多謝你救咗我"(Thank you for having saved my life). Even if the person who saved your life was a lifeguard, saying "唔該" would sound as if you took it for granted. However, if you were slightly injured and a paramedic put on a bandage for you, you could say: "唔該晒"(Thank you very much), because you thank him for the service.
In a nutshell, if we thank someone from the bottom of our hearts instead of out of courtesy, we specify what we thank for by saying "多謝你(+action)". e.g. "多謝你一直照顧我"(Thank you for taking care of me all along), "多謝你原諒我"Thank you for forgiving me), etc.
I hope the explanation is clear.