Global Value( Val(STRING) ) will work in this scenario, but only if the string is a number.
As far as I know, global values can't be retrieved from strings by their letters, but you can get them by their numbers, starting at 1.
Global Value( Val("1") ) will give you Global Value A. So change the string from using A/B/C/D to 1/2/3/4 etc.
I would ditch the string and use a fastloop instead. That way you can set each alterable value by using an expression and the loopindex, then just call the loop the amount of times as many values you need. I attached an example, since it's kind of hard to explain and surely hard to understand:
automate global values4.mfa
Look in the parameters active. Here you can set which global value is your starting point, and which is your end point. You can also set what the starting alterable value is for the actives. These values can be set each time you want to fill alterable values, but make sure you set them before you call the loop.
EDIT: You might notice that I add 1 to the loopindex when choosing the Global Value, but not when choosing the Alterable Value: Apparently Global Values are 1-based, but Alterable Values are 0-based. I had to re-write this post several times after realizing that.