Do virtual resources persist over a re-boot of the device?

Yes if they are created as part of a device object. Virtual resources will not be stored over a reset if the are created via a stream or command.

Virtual resources that are not in sync with a blueprint, will be overwritten if a blueprint is deployed to the device.

As of firmware 2.1.1, virtual resource values can persist over a reboot .