That is strange, if it was a UserControl instead of a page I would guess you had more than one usercontrol instance on the page trying to add the same id.
But, I suspect the error is happening somewhere other than the code that adds the link, because the error seems to be when calling .FindControl and that is not part of the code for adding the literal.
Possibly you are calling the method AddConnoicalUrl more than 1 time.
I would review the rest of your code and step through the code to find out where the error is happening and try commenting things out to find it if needed.
Hope it helps,
Joe