Faced the same problem when I swapped out Australia sim card with my Singtel card after I came back from my holiday
Tried all methods - but can't get the imessage to work

iMessage keep showing my Aust number (grey out)
Finally found a solution:
Sign off from Apple ID in iMessage and Facetime
Turn off iMessage and Facetime
(I gave up and leave the setting off for 1 day. Switch off the phone overnight. Not sure if it helps)
Wake up in the morning.....
Reset Network Setting
....Phone reboot....
Contact App> add myself as a contact with my iPhone number (must add it as an iPhone number, not work or home, etc)
Setting > Mail, Contacts, Calendar > My Info. Select myself in Contact
Turn on iMessage. Sign in Apple ID
Turn on Facetime. Sign in Apple ID.
iMessage activated almost instantly
