My issue is that I thought that for engines to respect canonical tags the content should be largely identical.
When you use a canonical URL in your mobile pages, you're essentially telling the Googlebot not to index your mobile pages because the same content appears at the preferred canonical URL. For sites that redirect users to the same content for mobile devices, that's fine because you don't want two sets of the same page competing with each other for indexing.
If the content isn't identical, then you would likely not run into duplicate content issues, and it might be preferable to have both your mobile and desktop pages indexed.
What simplifies this quite a bit is to direct the Googlebot-Mobile user-agent to mobile pages and the
Googlebot user-agent to desktop pages.
For more on this, see Matt Cutts:
Does indexing a mobile website create a duplicate content issues?
Additionally, you can add URLs for your mobile pages to a sitemap, as demonstrated here:
Adding mobile URL information to a Sitemap
Using the Mobile Sitemap format there would indicate that the URLs are to be indexed as mobile content.