I have been puzzling over issues with service level theme setting in OpenLP and I have found the following. I'm using 3.1.0 rc2 portable, but I've also seen the same behaviour in 3.0.2
Start OpenLP
System is set to service level themes. default is Trinity - Gold and service theme is Trinity - Red.
I have the OpenLP.ini file open in Notepad ++
I change the Theme to Trinity - Green and add a song to the service and go live
One thing to note here, which is different to 2.4.6, is that the preview uses the default theme (Gold). This also happens if you go direct to Live from the song database. It is not my main concern, but I think the 2.4.6 behaviour of using the service level theme was correct.
Anyway, back to the main problem. I now save my service as Test Trinity Green.osz and then look at the service_data.osj
So the theme that is stored in service_data is the original service level theme. I repeated this process twice
then shutdown OpenLP and tried again
Now the service theme that is being stored is Trinity - Gold, which is the last theme I was using before I stopped OpenLp