Yes, which / that / zero are all equally possible.
You can add "to" after "give" but it's not necessary and is less common. Adding "to" makes the sentence sounds more formal.
You should use the past simple "gave", not "had given". When you use the present perfect, your perspective is the present. You gave me the book, then I read it and now I have finished it. The sequence of time is clear and there is no need for a past perfect form.