Environment.GetEnvironmentVariable("userprofile")
Trying to navigate up from a named SpecialFolder is prone for problems. There are plenty of reasons that the folders won't be where you expect them - users can move them on their own, GPO can move them, folder redirection to UNC paths, etc.
Using the environment variable for the userprofile should reflect any of those possible issues.