htmlspecialchars in search
Try adding some instrumentation by replacing the check_plain function with this version:

function check_plain($text) {
  $plain = htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
  if (empty($plain) &amp;&amp; !empty($text)) {
    dpm($text);
    ddebug_backtrace();
  }
}


You will need to have the devel module enabled.  The next time the error is triggered, the offending text will be displayed along with a backtrace that shows what function triggered the error.  With that info, you can search your code and database for the offending text and remove it.