DependencyObject существует для использования всей системы свойств зависимостей. Одним из побочных эффектов этого является то, что он действительно не согласуется с подходом к сериализации, принятым в .NET.
Сериализация в .NET сериализует поля в классе. Однако объекты DependencyObject на самом деле не используют поля (экземпляра), а регистрируют свойства DependencyProperties, которые хранятся в другом месте (если вообще). Как таковые, они не сериализуются должным образом, даже если вы отметите их [Сериализуемые].