Guys, guys, guys. You don't need to call new routines that spawn legends, you don't need new vars that will keep track of the chosen starter. You don't need to write new difficult scripts. And to me, it was perfectly clear what he wanted from the first post.
Anyways, the roaming legends are set during the script at 0x170FA5 (Celio event and stuff) by special 0x129. To activate them from a different moment, remove the special from that script and place it somewhere else. It will activate a roaming beast based on var 0x4031, which contains the number of the starter you've chosen.
Now, to modify what roamer you get, there are two options:
1. If the index numbers of the roamers you want are not higher than 0xFF, you can put the three indexes at the bytes at 08141CAA, 08141CB4 and 08141CB8 in the order 2, 0, 1 based on the value of var 0x4031.
2. If the index numbers of the roamers you want are higher than 0xFF, put them at the halfwords at 083F5D2C, 083F5D2E and 083F5D30 in the order 0, 1, 2 based on the value of var 0x4031 and write the four bytes 06 1C 0B E0 to 08141C9E.