Yeah, ultimately, what I did was breed and evolve Exeggcute in an Alola game, then transferred it forward via Pokémon HOME. That's more steps than I'd like. (Though the original thing I wanted was that Exeggutor should have Frisk, not Harvest, and the NPC with the Ditto will only give out an Exeggutor with Harvest. Since that's a Hidden Ability, you can't change it to Frisk with the Ability Patch. I think that lady in Isle of Armor does sometimes give out Exeggutor with Frisk, but it hasn't happened yet in my game.) Your situation with the shiny Pikachu is not as easily solved, unfortunately.Yeah, the NPC trade system doesn't entirely work, because I want to evolve MY Pokemon and not just get someone else's, and there are certain circumstances that a trade couldn't satisfy. For example, I have a shiny Pikachu from one of the Max Raids, but I want to evolve it into Alolan Raichu, not Kantonian Raichu. So how can I get my shiny Alolan Raichu outside of Alola? The NPC isn't going to trade a shiny for a shiny, is it? I don't think it'd work that way, so unless the variant keeps every single attribute the same (including IVs, natures, characteristics, moves, abilities when applicable, and whether or not it's shiny), they need a system for evolving your own Pokemon instead of just swapping for someone else's.
I had an idea for that where they introduce held items for each region, a Kanto Stone, an Alola Stone, a Galar Stone, etc. If the Pokemon holds the stone when it evolves, it evolves into the variant of that respective region. And if the Pokemon has a variant base form (such as Meowth, Farfetch'd, or Ponyta), if the mother holds the stone while breeding it hatches into that variant. Otherwise if they don't hold one of the stones you would just get whatever evolution or child is the default for that region.
I was hoping they'd do what they did for Ultra Sun and Ultra Moon, where Ultra Space counts as non-Alola so you could evolve Cubone, Exeggcute, and Pikachu into their Kantonian selves there, and have some area that counts as Alola for you to evolve Pokémon in, and preferably some other area that counts as neither Galar nor Alola. In particular is Kantonian Weezing, who got a Hidden Ability this generation. Admittedly, Stench is highly situational and much less useful than Levitate unless you're up to something weird, but if you wanted to breed and hatch a Weezing with Stench so it's all-yours, you need to transfer a Weezing forward through an Alola game, GO, or Let's Go! and use the Ability Patch to change Levitate to Stench.
Regarding your idea of regional stones, 3-D models of them exist in Pokémon GO. They have a set of stones for each region introduced thus far themed on Pokémon of that generation (and they're even called Kanto Stones, Johto Stones, etc.). If I recall correctly, they help you evolve Pokémon of that generation, though it could definitely be reworked for the main series in the way you described.