In short:
یهود as it is used in the Qur'an refers specifically to the Jews during the time of the Prophet, whereas بنی اسرائیل refers to all descendants of Israel. All یهود are بنی اسرائیل, but not all بنی اسرائیل are یهود.
In long:
After the reign of Solomon, the ancient Kingdom of Israel broke into two separate kingdoms; the southern kingdom comprised mainly the tribe of Judah (one of the sons of Israel) and as such was referred to as the Kingdom of Judah. The term "یهود" is derived from the name of this kingdom, even though they're not necessarily all descendants of Judah himself.
The northern Kingdom of Israel, with the bulk of the remaining tribes, was eventually conquered and destroyed.
If you go through the referenced ayat, you'll notice that the term یهود is used specifically to refer to the contemporary followers of the religion (as per the tradition of the Kingdom of Judah); a particular group of people that were already known — by themselves as well as the prophet — by that name (you'll similarly notice the term نصارىٰ (Christian) is also such a contemporary reference).
However, God's use of the construction "بنی اسرائیل" in the Qur'an is predominantly in the context of the original covenant (i.e. the Mosaic Covenant), either by calling modern Israelites to remember it, or by accounts of historical Israelites while they were under it (i.e. between the times of the prophets Moses and Jesus). The very use of بنی اسرائیل implies this covenant, even when it is not explicitly mentioned.
When you consider that the covenant was contracted with all the descendants of Israel at the time, this could include any number of groups which are not (technically) یهود (e.g. the ten lost tribes of the northern kingdom). It only makes sense that God continues to use بنی اسرائیل when calling them toward it.