For the Gen 5 games, I think both Black/2 and White/2 can be seen as canon... but only with the correct protagonists! I think Hilbert and Nate should be the protagonists for Black and Black 2, while Hilda and Rosa should be the protagonists for White and White 2. I guess the reason for this is because that was how I played my Gen 5 games, so I will always see it like this. If anyone plays Black/2 as the girl or White/2 as the boy, it goes completely against my headcanon in every possible way and I can't help but consider it wrong.
I think with regards to the "correct" protagonist with every game, I think the way you laid it out for the Gen 5 games can actually be sort of expanded so that both player characters of every region can be the protag, but for a different version. Like the "boy" protag is the canon protagonist for the A version, and the "girl" protag is the protagonist of the B version. With the exception of Gen 1 (only Red) and Gen 2 (Gold/Ethan is feasibly the protag of GS, but Kris can be interpreted as Crystal's protagonist). Something like this:
RBGY: Red
GS: Ethan,
Crystal: Kris
Ruby: Brendan
Sapphire: May
FireRed: Red
LeafGreen: Leaf
Diamond: Lucas
Pearl: Dawn
HeartGold: Ethan
SoulSilver: Lyra
Black: Hilbert
White: Hilda
Black 2: Nate
White 2: Rosa
X: Calem
Y: Serena
Omega Ruby: Brendan
Alpha Sapphire: May
Sun/Ultra Sun: Elio
Moon/Ultra Moon: Selene
Let's Go, Pikachu!: Chase
Let's Go, Eevee!: Elaine
Sword: Victor
Shield: Gloria
Brilliant Diamond: Lucas
Shining Pearl: Dawn
Something like that. Many of the protags' color schemes even match the respective color schemes I laid out here, for example, with XY: Calem's default outfit is blue (befitting X's blue color scheme), and Serena's default outfit is dominantly red (befitting Y's red color scheme), or with DP/BDSP in which Lucas has traces of blue color scheme in his outfit while Dawn's stands out as pink.
Or in the case of SM/USUM, where the names reflect the games respectively. The boy protag's "name" is Elio, which draws from "helios" which is the God of the Sun in Greek mythology, while the girl protag's name is Selene, derived from the Goddess of the Moon in Greek mythology, hence Sun and Moon respectively making Elio the Sun/Ultra Sun protag while Selene is the Moon/Ultra Moon protag. Going into BDSP, the remake names are from the respective protag's Japanese names (Kouki and Hikari). Additionally, Kris's name is clearly from Crystal, for instance.
In some cases it's even more clearly implied, like in ORAS where in the respective openings: in Omega Ruby's opening you see Brendan, whereas in Alpha Sapphire's opening you see May.
Or in LGPE, where Chase, the boy protag, is dominantly seen with Pikachu, while Elaine, the girl protag, is dominantly seen with Eevee in marketing.
Now granted, this only applies well to games that are paired. In solitary games that aren't Crystal, such as Emerald, Platinum, and Legends: Arceus, this is more open to interpretation as there is only one continuity that can be interpreted as a singular canon in these instances. Though if we go by manga canon "Dawn" could feasibly be canon to Platinum, but that's still left open to interpretation. Emerald is very much either way. Meanwhile with the likes of Legends it can really go either way as to whether Rei or Akari are the "correct" protagonist.
Just a bit of a thought dump in this regard.