Google's John Mueller confirmed on Twitter that Google will pick one of the canonicals if the ones you set conflict. Meaning, if you send two or more different canonical signals to Google, Google will just pick which one they think is correct. Google will not drop both canonicals because of the conflicting information you sent.
John said, "FWIW in general if the canonical situation isn't clear, we'd just pick one or the other, we wouldn't drop both."
Good points :). FWIW in general if the canonical situation isn't clear, we'd just pick one or the other, we wouldn't drop both.
— John ☆.o(≧▽≦)o.☆ (@JohnMu) August 22, 2017
Of course, most SEOs want to help Google not have to make such decisions. So making sure there are no conflicting signals sent to Google is what SEOs do best.
Forum discussion at Twitter.