Это может быть проблемой с неявным приведением OverflowException в System.Exception.
Сериализатор контракта данных очень специфичен. Это может быть хорошо и плохо.
Я бы попробовал просто сгенерировать новое исключение System.Exception, чтобы проверить, нормально ли это работает.
Если это так, вам может понадобиться исключить исключение, создав новое исключение System.Exception с исходным сообщением об исключении.
Или, как сказал Джон, вам, возможно, будет лучше, если вы создадите собственный класс ошибок, содержащий информацию об исключении.