Ow! That's a painful price! (Not as painful as what I've read they pay in Australia, but still plenty high!)
Have you looked into ordering from the US? It costs about $12 to send an envelope to Canada, plus a $5 cross-border administrative fee (and tax, that's unavoidable anyway). So... you'd save about $6 / yard on fabric, and the envelope holds about 8 yards. You'd come out ahead, as long as you ordered at least 3 yards. And there are probably LOTS of US shops that ship internationally.
Of course, you should support always your local shops... but they can't always carry everything that you might want.