The reason you can't put {vb:raw similarthreads} in the postbit_legacy template is because a variable has to be registered to a template before you can use it in a vb:raw tag. In addition, the similarthreads section hasn't even been created yet when the posts are being rendered, so there's no way to simply register similarthreads to the postbit_legacy template.
The only (relatively easy) thing I can think of would be to create a plugin using hook showthread_complete. At that point the similar threads section has been created and is in $similarthreads, and the posts section has been created as $postbits. So what you might be able to do is do a str_replace() on $postbits to insert the similar threads, then unset $similarthreads, like:
Code:
if (isset($similarthreads))
{
$find = "something";
$postbits = str_replace($find, $similarthreads, $postbits);
unset($similarthreads);
}
That leaves the question of what to use as "something" and how to get it into postbit_legacy. I was thinking something like an html comment (so if the plugin is disabled it won't be displayed), so maybe "<!-- similar threads -->". Then you'd use something similar to what you posted above, maybe
Code:
<vb:if condition="$post['isfirstshown']"><!-- similar threads --></vb:if>
Anyway, I haven't actually tested this so you might run in to some issues.