The TTS feature splits on semicolon first (and also handles any dynamic tts) and then parses what is left. You're effectively telling TTS to say, 'Good morning Gary;Ciryan. How are you?'. Even if the split came AFTER the token parsing, you would be left with, 'Good morning Gary' and 'Ciryan. How are you?'
What you're really wanting to do is have a variable be randomized in the middle of your TTS. If you were not using a variable, you'd just do this:
Say, 'Good morning [Gary;Ciryan]. How are you?'
So, what you'd want to do is represent the random section in your variable value:
Set Text [Variable] to '[Gary;Ciryan]'
This will parse out and do what you are wanting.
There are other ways to do this, too:
You could split it into two phrases like so:
Good morning Gary. How are you?;Good morning Ciryan. How are you?
Or, use {TXTRANDOM:Gary;Ciryan} like this:
'Good morning {TXTRANDOM:Gary;Ciryan}. How are you?'
Or, nest up a couple tokens - {TXTRANDOM:{TXT:Variable}} like so:
Set Text [Variable] to 'Gary;Ciryan'
'Good morning {TXTRANDOM:{TXT:Variable}}. How are you?'
Hope that helps!