Chase is the way to go here. They treat the Canadian checks as foreign and when you look at your receipt it will say something to the effect, foreign currency transfer and a blurb how there might be a delay in available funds until it's verified. Since they do the most foreign transactions by far, it won't be any issue. Just open a lot of accounts and become a premier client, it has advantages.
Also I've never seen a charge for a money order or check, the only time is for a wire transfer but that's standard at almost every major bank these days. They seem to be the cheapest however.
Banks that are charging to process a check is not a bank I would want to be with unless........... they had to do collection work to get the funds, if that's the case, then there's a shortage of funds with the account it is being drawn out of. Beware of this.
Steer clear of Wells and BOA, not worth the hold time and the charges.