Как уже сказали выше - настройте 301-й редирект с зеркал. Этого будет достаточно.
А причины можно и отдельно поразбирать: скажем, на версии с www накопилось больше внешних или внутренних ссылок, пользовательских сигналов и т.п. Canonical - не приказ для роботов, а пожелание, и при ряде чисто технических моментов они могут игнорироваться.
К слову: я бы ещё проверил, выводится ли Canonical в raw-html или это добавляется уже на уровне JS. Чисто из любопытства.