As you can see it's quite a bit smaller. This is because instead of repeating the same lines of code seperately for Bulbasuar, Charmander and Squirtle I merged them all into one and simply had the 3 options goto the combined script.
The buffer that you can see in the message boxes is set by bufferpokemon 0x0 0x0, which buffers the first pokemon of your party into buffer 1.(its a 0 because with hex 0 is technically 1). The script wasn't giving you the items because your script never pointed to the @Take you had labeled. It is probably a better idea for this sorta thing to just give them alongside the Pokemon in the script as I did.
What I meant for the checkflag was that, even though you had set a flag in the script it would still load as it never checked to see if the flag was already set. That is the addition to the beginning.
As for the multichoice if it still gives you the error for only picking bulbasuar then replace it with this: