The "birthright" as used here that went to Yoseph is the "double portion".
The Artscroll commentary on Reuven cites Targum Yonasan as pointing out that there were three items that had been originally given to the first born.
you do not deserve to serve in the superior positions that were
designated for you.
Targum Yonatan says:
But because you sinned my son, the birthright is given to Yoseph, the
kingship to Yehudah, and the priesthood to Levi
Once Reuven lost the three elements of the bechorah, Yaakov divided them to the most appropriate children.
Yoseph as the firstborn of Rachel and as the savior of the family (and ruler in Mitzraim) was the most appropriate to receive the "double portion". This was expressed when Yoseph's two children were raised to the status of tribe in themselves. ויחי 48:3
Note that Rashi says that each of Bnai Yisrael received the same amount of land so that Ephraim and Menashe received the same amount in total that they would have received as the tribe of Yosef. It was only the honor of banners and marching as separate tribes that caused them to have a "double portion"
Ramban says that each tribe received 1/12 of the land which was then divided so that Ephraim and Menashe now received two portions of land which was the double portion of the "birthright".
Note also that verse 21 has Yoseph given an extra portion (Shechem) as well, though Maharshal says this was in gratitude to the oath he swore to his father. Others say it refers to the extra tribe as above.
@hazoriz pointed to (as well as other pointers in the comments above)
מצודת דוד על דברי הימים א ה, א כי הוא הבכור . ר''ל עם כי הוא הבכור
והיה א''כ מהראוי להזכיר יחוסו ראשון : ובחללו . אבל בעת שחלל ובזה יצועי
אביו ובלבלה לבל יהא מצוי תדיר אצל בלהה אז נלקחה הבכורה מעמו ונתנה
ליוסף להיות נוטל פי שנים כבכור להיות בניו נחלקים לשני שבטים :
Rav Hirsch points out that even though Yosef is worthy of the honor of the bechor, he cannot become the leader of the Bnai Yisrael because he triggered jealousy among his brothers and thus could not bring them together in unity.
Note that in 49:26 Yaakov calls Yoseph "Nezir Echav" which means the "morally ennobled one" and not the crowned one.
My own comment is that we see that Yerav'am split the kingdom and showed that this flaw could still reveal itself.
Levi because of his zeal and feeling of brotherhood was fit for the Kehunah but because of his trait of anger the zeal disqualified him for the malchus. That is why Yaakov said that they had to be split up among the Bnai Yisrael and live on the terumos and maasros but not inherit land. This dependence on his brethren also made him unfit for the meluchah.
My own comment here is that we see what happened when the Chashmonaim took on the role of prince and king and how it led to their downfall.
Yehudah was the one who Rav Hirsch says in 49:10
This trend in Yehudah's character to have influence in the nation both
internally and externally befitted him for "scepter and lawgiving
style", to be the Lord Protector of both material and spiritual
My own comment here is that he was the one who stepped forward to protect Binyamin, who recognized and admitted his mistakes with the sale of Yoseph and the incident of Tamar. He was the one that Yaakov sent ahead to Mitzraim to prepare the way for the Bnai Yisrael to live in Goshen. He was thus the one who deserved the Malchus.
As we see, Yaakov recognized that these three aspects that would normally have been granted to Reuven as the bechor had to be split to three different elements of his children.