A quick test with my server names raises the issue of illegal characters in variable names. My resulting variable from "New-Variable -Name “$($server.name)background” -Value Cache:BGpass" is {asdf-asdfbackground}. The curly braces are added by powershell automatically.
Valid characters are only letters, numbers and underscore.
gav