There is nothing in the Bible about Saul killing Gibeonites. Although it might possibly refer to the Saul's slaughter of the priests of Nob, which was in the land of Benjamin, not far from Gibeon. (1 Samuel 22:6-19, Episode 112)
But David spared Mephibosheth, Jonathan's son, because of the oath that he had with Jonathan. (2 Samuel 21:7)
David gave two of Saul's sons (21:8)
The names of the two sons were Armoni and Mephibosheth. This Mephibosheth is the son of Saul and Rizpah, while the Mephibosheth in verse 7 (that was spared) was Mephibosheth, the son of Jonathan.
Elhanan killed [the brother of] Goliath. (21:19)
"The brother of" is italicized in the King James Version to indicate that the words were were added by the translators - to avoid the obvious contradiction with the story of David and Goliath. Who killed Goliath?