Based on the stack trace this error is happening when a task object used to write to the search index for the site is serialized to xml.
This is most likely due to file system permissions preventing access to files under windows\temp which is the default location where temporary classes for serialized xml objects are created by the asp.net runtime.
Look for this commented out in Web.config, or if you can't find it in your older version you can add it uncommented. This setting can be used to make it generate the temporary class in a folder beneath your web site instead of in windows\temp and that may solve the problem. The only thing is you have to know the actual file system path to your /Data folder and put it in this setting before you uncomment it.
<!-- the below example can be useful if you encounter the error described in this post
http://www.mojoportal.com/Forums/Thread.aspx?thread=6741&mid=34&pageid=5&ItemID=3&pagenumber=1#post27613
-->
<!--
<system.xml.serialization>
<xmlSerializer tempFilesLocation="D:\__projects\mojoportal\__code\joedev\Web\Data"/>
</system.xml.serialization>
-->
Hope that helps,
Joe