Проблема в том, что анонимные типы определяются компилятором как внутренние классы. JSON.NET полагается на работу отражения, а в Silverlight отражение через границы сборки работает только для открытых типов (при использовании частично доверенных сборок, таких как эта).
Я думаю, что DataContractJsonSerializer, как упомянуто в предыдущем ответе, является подходящим вариантом в этом случае, поскольку он является частью инфраструктуры и должен иметь дополнительные привилегии.
Еще одна вещь, которую стоит попробовать - использовать словари или ExpandoObject вместо анонимных типов, но YMMV.