Are the voicemail messages and custom sound files destroyed or reset when asterisk is restarted? If so, is there a way to avoid that?

Only if you are storing the files on a RAM disk (Unlikely). Otherwise, they should remain.

No ram drive here. I’m not entirely sure it did happen, just about 10+ people complain they lost their voicemails after I did a system restart.

The only other way I could think of this happening is if the spool directory in asterisk.conf changed.

Have a look at the system (linux) settings. Maybe there is something else that you are running on the box that is doing it.