Well, depending on the concept of mappack you have this may work or not. I doubt that you achieve this if your idea is to have several .BSP to upload to your workshop and therefore several
separated maps: there is no way that one map can load any information from other map. And if you ever achieve to have some information on the server to later be obtained by the following map in the series, it would only work if the player loads the map in the same session.
If you aren't really interested in having this mappack on your workshop, the thing is different. Check out this post (and the previous ones) by Chickenmobile, it's extremely useful info about this subject.
In the case you do want to have it on your workshop, your only real chance is to have all the maps into the same mappack and publish only one .BSP to your workshop. Here you can do multiple things... I would simply use one logic_case to store all different possibilities for the portalgun to fire the right outputs on map load or reload. You should make an entry with a panel or whatever to make the player to choose his option at the beginning of your map, and here you'll fire whatever outputs via the logic_case. I would have for example 2 logic_relays for my 2 portalgun options (one for the single portal portalgun, other for the double-fire portalgun) disabled from the beginning. I'd send the Trigger output to both logic_relays on map spawn or quickload. Now, depending on the player's choice at the very beginning of the mappack, I'd enable 1 logic_relay only, and this way, when you send the Trigger output to both logic_relays, only one of them will be actually fired, making the player being given the right portalgun and such.
That was just an idea, but you could achieve that by many other ways....