Som @ jpatokal skrev, behöver du en vanlig Schengenvisum av typ C och inte en "transitvisum för flygplatser". I praktiken gör det inte mycket av skillnad men som formuläret ska tillämpas och kostnaderna är desamma. Kolla bara "transit / transit" istället för "airport transit / transito aeroportuale".
Det kan vara lite förvirrande eftersom du inte avser att lämna flygplatsen men orsaken till allt detta är att flygningen från Rom till Amsterdam är ett flyg mellan två Schengen-länder så det kommer att avvika från en annan del av flygplatsen än flyg till icke-Schengen destinationer. Det finns ingen passkontroll vid ankomst i Amsterdam för detta flyg, så inget sätt att se till att du inte bor i Nederländerna istället för att ta ditt flyg till Kanada.
Det kanadensiska uppehållstillståndet skulle kunna befria dig från kravet på flygtransitvisum om du bara skulle ha en överlåtelse i Schengenområdet, men det gör inte befrielse från att du måste få visum i det här fallet . Se Behöver jag ett visum för transitering (eller layover) i Schengenområdet? för en fullständig förklaring av reglerna.