There can be a lot of reasons this could happen, including the carrier holding your number hostage to see if you will stay. In most cases, a number port failure should provide some sort of error message. Have you tried calling in to see if they can do it over the phone or in a store?
I am not sure how the E911 service fully works but one rare example where one company offers E911 service in the area your number is in but another carrier might not. Most cases though are due to balance owing, the company has a porting fee for you to take your number ot another carrier that has to be paid first, or they just want to be arseholes and hold your number hostage in hopes you will stay. If you call in and don't get any straight answers though, then file a complaint with the CRTC, which isn't a quick process, but at least you will get an answer from someone who knows what they are talking about... hopefully!