Trying to get property of non-object wordpress error message

Given that the page works if you leave the original query alone, your solution is pretty simple. Leave the original query alone. You don’t need to overwrite that query in order to created secondary loops. Instead of this:

query_single('dealers', 'publish', '1', $taxtype, $value);
if (have_posts()) :
    while (have_posts()) : 
        the_post();

You want:

$myq = new WP_Query($args);
if ($myq->have_posts()) :
    while ($myq->have_posts()) : 
        $myq->the_post();

You can do that as many times as you want on the page and not clobber the main query. The catch is that I don’t know what single_query is and so I don’t know exactly what $args should look like. Given the way the code works I suspect that single_query runs query_posts, which is strongly discouraged. It could just as easily return a new WP_Query object for you to use, if you tweaked it.

Reference

http://codex.wordpress.org/Class_Reference/WP_Query