What is the difference between 留, 住 and 呆. They all mean to stay or live. Are they interchangeable ?
They are not interchangeable
留在 = stay at
住在 = live in
呆在 = stay at
Although both 留在 and 呆在 mean 'stay at', 呆(stay) as a verb implies unproductively
We say 留在北京工作, but not 呆在北京工作 (unless you hate the job, and consider it unproductive for yourself)
we say 留在家中照顧生病的孩子, but not 呆在家中照顧生病的孩子 (unless you don't want to take care of the sick kid, and consider it a waste of time)
Saying 呆在家中整天打電玩 instead of 留在家中整天打電玩 indicated you realize playing video games all day is unproductive
another meaning of 呆 as a verb is 'to pause' e.g. 呆了一下 (paused for a moment)
another meaning of 留 as a verb is 'to keep' e.g. 留客 (keep the guest at your place)
Yes, "留, 住 and 待 (呆)*. They all mean to stay or live."
留 has the meaning of "to keep", and "to stay", and "待" has the meaning of "wait", "keep in" and "stay in". they do not equal "住", which means physically "to live in" or "to stay over" in a defined location.
All three sentences can be translated to: "She kindly asked him to stay for a few more days, but he did not want to stay any longer.", but they are slightly different as - the first sentence has the strongest indication that she wanted him to stay to live "in her place", or a specific living place such as "the hotel", for a few more days. However, the notion is much weaker in the latter two sentences, as she may have asked him to stay in any place (village, city...) as well as a specific physical living place.
But at the end, I would say they are pretty much interchangeable except in the phrase "婉留", for which "留" cannot be replaced by "住" or "待".
(*) - Agree with user "@joehua" that 呆 is a 別字 of 待.