Проблемы с сериализацией объекта PrinterSetting связаны со свойством PrintFileName.
Это свойство должно иметь значение, чтобы избежать исключения при попытке десериализации объекта обратно.
Если вы хотите сохранить настройки принтера для средства просмотра отчетов
Me.ReportViewer.PrinterSettings.PrintFileName = "abc"
My.Settings.PrinterSettings = Me.ReportViewer.PrinterSettings
My.Settings.Save()
И вернуть их обратно
If My.Settings.PrinterSettings IsNot Nothing Then Me.ReportViewer.PrinterSettings = My.Settings.PrinterSettings
В любом случае сохранение PrinterSetting сохранит только «стандартное» значение. Вы должны использовать DEVMODE, если хотите сохранить экзотические вещи, которые есть у каждого драйвера.