From the many past topics about this on here ...
The default conditions for a successful number port, mentioned over and over again on here, seem to be that the number in question must be available on an active, working line which does not have any disconnection request in place on it. The idea is that the new provider takes control of the number from the working line and the original landline service then ceases. Have had to do this process myself for work numbers on a past occasion.
If a service ceases without the port happening, the number goes back into pool of numbers where it sits for a period of time before being recycled and getting it back again from the pool may not be possible (or specifically relies on making contact with exactly the right people at VM who do actually know how to make it happen).
VM's own processes in explaining the requirements to the customer, and carrying out the port reliably, often seem to be lacking when they are described on here and it has all gone wrong.
Hopefully your number is still 'in transit' somewhere and VM can recover it for you.