To set a dynamic variable:
set $+(%, host, $nick) %whatever
The important part to notice here is that the '%' and the word 'host' should be separated, otherwise mIRC will try to evaluate the variable '%host' and try to use it's value as part of the dynamic variable name.
To get a dynamic variable's value:
echo -a [color:red]$eval($+(%, host, $nick),2)[/color]
The bit in red is to show what's changed between the two. $eval() makes something evaluate however many times you want, so we make it evaluate the contents twice - once to get the dynamic variable name (ie. %hostMysticalSilkie), and then once more to get the value of that variable.
Hope that helps, or at least didn't make things more confusing.