What would causes search to return incorrect results?

AFAIK, out-of-the-box WordPress does not include taxonomies, such as tags and categories, in it’s search, only post titles & content.

I’m sure this has always been the case, so I’m a little confused as to why it ‘used to work’. Perhaps the pages have been modified, and used to contain the search terms themselves, but no longer do?

UPDATE: Taking a look at your functions.php, I see three possible troublemakers;

  1. Line 572, add_filter('pre_get_posts', 'query_post_type');
  2. Line 597, add_filter('pre_get_posts','SearchFilter');
  3. Line 776, add_filter('posts_groupby', 'group_by_post_type' );

I suggest, one at a time, commenting out the line (prepend the line with //) and then testing a search. If there are no improvements, try all three commented out and work your way backwards. Either way you should be able to isolate the problem.

Also, two minor improvement suggestions (off-topic);

  1. Remove the line add_action('init', 'my_init_method'); (it’s worthless)
  2. Remove the two update_option calls at the top (unneccessary database writes on every request).