Why does the Torah mention the birth of Moshe's sons and the reasons for their names here (and not in Shemos, where their birth took place?
Ramban: The Torah mentions it here because it wants to highlight the Chesed that Hashem performed with Moshe whilst he lived in a strange land, and to record how he thanked Hashem for saving him from the sword of Pharaoh and helping him to flee 1 , and for having crowned him king of Yisrael and for drowning Pharaoh and his army in the sea.
Why does it say "Ger Hayisi" in past tense?
Moshav Zekenim citing R. Yosef Yechi'el: One who does not have children is a Ger (transient resident), but after he has children, it is known that he will not leave them.
Why does it say "Ki Amar" regarding Gershom, but not regarding Eliezer?
Ba'al ha'Turim and Moshav Zekenim (4), both citing Mechilta (of R. Yishmael): Above (4:24), the angel wanted to kill Moshe for not circumcising Gershom; Yisro agreed that Moshe marry Tziporah only on condition that the first son will be for idolatry 1 , and Moshe swore to this. "Ki Amar"means that this was Ones
Michtav me'Eliyahu (1 p.155): Surely Moshe would not swear to this! Rather, Yisro had rejected idolatry, but did not yet serve Hashem. Moshe attached himself to him, to try to draw him close to Emes. It is as if he swore to what could result from this, i.e. that his Bechor would serve idolatry.
Why was this Shevu'as Ones? He can not marry her, and not need to stipulate! Perhaps he considered this Ones, for without stipulating, he could not marry anyone. Beis Hillel permit swearing amidst Ones (e.g. to extortionists), and he need not fulfill it (Nedarim 28a). The Mechilta is unlike Beis Shamai, who forbid this. (PF)
Moshav Zekenim: Even though the name was based on what Hashem did for Moshe, Tziporah gave it with Ru'ach ha'Kodesh, and Moshe said that he himself intended to call him Eliezer.