Я даю Джон яблоко. - It is like one word "john-apple"
Он дает ее Джону - While you say "it" in english, you can say её, его, это и т.д. in russian, because nouns have a gender.
Она дает ему.
Я должен дать ему.
Я хочу дать ей. - It's ok generally. If you give, obviously you give something, in some cases, when you mentioned something earlier, you can omit "это" and so on.