What part of what I already provided doesn’t give you that? Using New-Variable, I am actually creating a variable with a dynamically generated name. Then I show you how you can set that variable as well. But you can’t easily do dynamic variable name generation like you are trying to do because, as you indicated, it does not work (PowerShell does not support this).
Once you’ve created your dynamically named variable, you can do whatever you want to with that object, including access its properties, change their values, etc.
In the example I created, there actually is a variable called ‘ThisThat’, and you could reference that variable by name using $ThisThat, but as you said, you can’t be dependent on the name, so the *-Variable cmdlets allow you to work with dynamically named variables in that case.