The problem isn't in your DP_Update() code - the exception occurs in DataPortal.Update() when it calls Clone() to get a copy of your object (read the stack trace from bottom up and you'll see what I mean).
So the .NET serializer is unable to serialize your object for some reason - and that can be a tough issue to debug, because it means you have some field declared that the BinaryFormatter is unable to figure out...
You can create a simple test that creates an instance of your object and then calls Clone() on it - that should fail too. Then you can work on figuring out what field (or property value?) is causing the failure.
Rocky