You are able to purchase gift cards at most full service Marriott hotels in Canada in C$. You may want to call ahead to ensure they have cards in stock.
As for promos… none directly from Marriott that is currently running however, if you have a Canadian issued AMEX card you may want to check your promo offers as there are two current promos that gives you $50 credit for $250 spend at Marriott and $50 credit for $200 spend at a hotel in most provinces. Both promos stack and buying a gift card at a Marriott hotel qualifies as a purchase which will trigger both $50 offers.
For example.. I purchased a $250 gift card at a Marriott hotel and I got a $100 ($50 x 2) statement credit from Amex.