Need help with syncing Virtual Pins after a reboot

No.

All that Blynk.syncVirtual(vPin) does is to cause the corresponding BLYNK_WRITE(vPin) callback to ‘fire’.

You need to have a BLYNK_WRITE(V2) and BLYNK_WRITE(V3) callback that will accept the incoming value from those virtual datastreams and assign those values to variables, in a similar way to what you’ve done with the V4 datastream.

Maybe you should read this to gain a better understanding…

Pete.