I've definitely seen ranking bumps due to fixing this sort of redirect-canonical paradox. XML Sitemap that is inconsistent just adds insult to injury.
Your redirects, canonical tags, and XML sitemap should be completely consistent in terms of URL structure, protocol used (http vs https), etc. I highly suggest 'canonicalizing' all of these - agree on one protocol for whole site or for different sections of the site (http vs https), one sub-domain format (www vs non-www), and one method of accessing each piece of content (filter out unnecessary parameters, etc).
I find that when you can really consolidate and get rid of diluted dupe-URLs ("index bloat") than you can reach your full potential in terms of rankings.
But in short - if URL A has a canonical tag that points to URL B which then redirects back to URL A - it can be extremely confusing to the search engines. Best case - they ignore your canonicals. Worst case - index bloat and serious confusion.
Hope that helps!