Your object contains member variables which are themselves not serializable 'ReportDataStoreRegion'. If you really want to serialize your object. One option would be to declare the variable as transient so that it is not serialized.
There is no way to serialize a method object in a portable way since it doesn't contain all the necessary information to restore it. Instead, you should serialize the name of the class, the method name and the parameter types.