Not sure what is up but if you debug and hit this section it tries to return twice... I commeneted out the conditional and the returns worked as per normal. May have hit a complier bug.
protected virtual IValueProvider CreateMemberValueProvider(MemberInfo member)
//#if !PocketPC && !SILVERLIGHT
return new DynamicValueProvider(member);
return new ReflectionValueProvider(member);