is there a particular reason why it should change every time?
It's a UUID of the instance rather than the server (hostname is probably sufficient for that). That said there probably isn't a reason you couldn't set a persistent UUID yourself in a config file.
anyway to configure it to not change?
Currently no. It's generated anew on every start in switch_core.c:1701:switch_core_init()
It occurs after the switch.conf.xml file is loaded (line 1679) so it would be trivial to make a patch that reads it from that file and generates a random one if it hasn't been set in the config file.
It'd be more involved to generate a random one on the first startup that's then remembered on future startups. That should be possible too by caching it in a local file, as with freeswitch.serial.
-Steve