When you say both sites show up in results, but for different queries, are you referring to the actual duplicate content pages/articles, or the homepage and other target pages. These pages/sites may be ranking for these different terms due to strength of the site/page and backlink profiles.
In terms of canonical tags, if one site is going to be doing a cross domain canonical to the other site, I don't see how this could help the site that is doing the cross domain canonical. The site receiving the canonical tag and being credited as the source of the original content, I could see this helping them and helping the page of content to rank higher, but I don't see why this would help the site linking out with the cross domain canonical.
My suggestion - the site producing the content should get the credit, cross domain canonicals should be used to associate the credit for the content with the site producing the content, and you should also include a piece of text in the content piece that says this originally appeared on xyz website, or something along those lines. I'd provide as many signals to the engines as possible as to where to attribute this content.