It seems for some unknown reason using the SP1 digit map will send all calls to SP1, not just Canadian numbers. My last suggestion is to eliminate the ITSP A digit map from the outbound route and use a user defined digit map. For this test use only one rule in the user digitmap.
User Settings -> User Defined Digit Maps -> User Defined Digit Map2
Label: can
DigitMap: (1416xxxxxxx)
Phone OutboundCallRoute:
{(Mcan):sp1},{(Msp2):sp2},{([1-9]x?*(Mpli)):pp},{(<##:>):li},{(<**70:>(Mli)):li},{(<**82:>(Mbt2)):bt2},{(<**81:>(Mbt)):bt},{(<**8:>(Mbt)):bt},{**0:aa},{***:aa2},{(<**1:>(Msp1)):sp1},{(<**2:>(Msp2)):sp2},{(<**3:>(Msp3)):sp3},{(<**4:>(Msp4)):sp4},{(<**9:>(Mpp)):pp},{(Mpli):pli}