Second post dealing with GetValue in a row...
GetValue returns all the data separated by the return character, not the * character.
You could use the substitute function to replace the * character with returns and then GetValue could work to return all text shown between the returns, you may want to use the trim function to remove unneeded trailing spaces:
Let ( $Text = Substitute ( Get ( ScriptParameter ) ; "*" ; ¶ ) ; Trim ( GetValue ( $Text ; 1 ) ) )
Should return ISA from the above sample text if it is passed as a script parameter. Subsequent uses of GetValue can extract different text from the $Text variable without needing to get another copy of the script parameter and perform another substitution.