I'd bet both are booking into different fare classes...while not as common on transborder routes, it does occur. This is typical differential pricing based on point-of-sale.
Also possible United.com (or United.ca) is cacheing an old fare, and it will update in the last step before purchase.
Two best options are to either find a friend with a US CC and use that and pay back. Or, book on a US point-of-sale that takes a Canadian credit card. For example, try Orbitz (pretty sure that will), Travelocity.com, Expedia.com, etc.