geralmente um dicionário não é serializável pronto para uso e esse é o seu problema, há muitos artigos sobre como resolver esse problema, por exemplo, Como serializar um dicionário ou tabela de hash em C# .