First of all, a phone call from a phone number based in a different rate center than your phone number, regardless of whether it's the same area code or even regional vicinity, is not a local call. I have no idea what area code or exchange rate center your phone number is based upon, but calls from Ottawa and New York can't both be local, mate. They're not even intra-national.
It's theoretically possible for someone to live in the 613 area code and have a non-fixed VoIP phone number from Australia which actually should have the +61 code prefix and someone to live in New York and have a non-fixed VoIP number from the Netherlands that actually would come in +31 prefixed. I know I'm probably overlooking something here but no matter for it's only theoretical and I believe you would know.
More likely, then, is that you're running some kind of 2nd (carrier) or 3rd party caller id. app all enabled up in Phone settings and it's a little out of whack and maybe you can just open it and let it update its database.
My compliments to you for bring this up. It would be good to keep this going until you or somebody else or I gets this figured out.