De acordo com a tendência gramatical do português europeu e com os estudos etimológicos sobre o topónimo, a forma correta é «no Marco de Canaveses».
De facto, não existe uma regra absoluta que permita prever infalivelmente o uso do artigo definido com topónimos. No entanto, há critérios históricos e linguísticos que ajudam a orientar esse uso. Um dos principais é a origem do topónimo: quando este deriva de um nome comum, é frequente que se use o artigo definido – como acontece com «o Porto», «a Póvoa de Varzim» ou «a Fuzeta» (com provável origem em “foz”). Ainda assim, há exceções que devem ser consideradas caso a caso.
No caso concreto de Marco de Canaveses, o nome Marco tem origem numa demarcação de pedra, muitas vezes de forma oblonga, que assinalava a divisão entre freguesias, e, como nome comum masculino, exige o uso do artigo definido o. Já Canaveses refere-se a terrenos de cultivo de cânhamo, funcionando como complemento do nome principal (Associação de Municípios Douro e Tâmega).
Por conseguinte, a forma correta é «no Marco de Canaveses», com a preposição em combinada com o artigo definido o.
Ainda assim, é comum encontrarmos a forma «em Marco de Canaveses», sem artigo definido antes de Marco, sobretudo em registos mais formais: «Câmara Municipal de Marco de Canaveses».