I'm sorry to say that you have not been advised well. VM does of course have a VoIP system - how else could it work without phone lines - and there is no reason to port it to some VoIP provider.
As for porting: there are sometimes problems but it's over the top to say it's unsafe to port to VM. Porting is regulated by OFCOM and providers are required to resolve problems. And if it's unsafe to port to VM, then it's unsafe to port to anyone. My advice is to proceed by following these procedures.
1. Do not cancel your BT line. This is the biggest reason why ports fail.
Cancelling BT yourself kills the number before VM can grab it.
2. Provide BT account holder name, address, and number exactly as on BT’s bill as even small mismatches can cause rejections.
3. Make sure VM raises a “Gaining Provider Led” port request. And don't breathe a word about this to BT, let VM handle everything.
4. Keep BT active until the port completes (usually 1–10 days.)
5. Once the number ports BT will close automatically - so you won't have to cancel manually.