Powershell is object oriented, which is super important to realize when working with it, and that is what usually gives people the problem with it, if they do not have previous experience with objects. It makes a big learning curve increase.
On you 'Write-Host' test on your Set-ADUser command, you see "System.Collections.DictionaryEntry" because that is telling you what object is there. You're creating dictionary objects, so it's not going to automatically write out the contents of the dictionary.