First time posting.
Loving Batocera, however I was encountering the same shader save issue after first install of Batocera 5.22-x86_64-20190609 earlier this week.
I've managed to resolve my shader issues so maybe this post might assist some users.
After loading and then saving a shader set as the default for a core eg gambatte, the shader would load correctly until the next reboot.
After the reboot the saved shader settings would be gone and had to be loaded in Retroarch again. This had to be done after every Bacotera reboot.
After reinstalling Batocera a second time and fiddling with some settings, I found that now the shader settings would would be gone when exiting retroarch and relaunching the same game again, even without rebooting.
I tried creating override files, editing the global shader setting etc but nothing worked. Retroarch would always default to the 'shaders off' setting under the shader settings.
Through a little more experimentation, I discovered that my shader settings per core were indeed being saved, but would not automatically load for any core if the shaderset under Game Settings in emulationstation was set to NONE or AUTO. These settings seem to disable any shaders (even shadersets set in retroarch) from loading.
On my machine at least, if the shaderset is set to SCANLINE or RETRO, then shader settings saved in the Retroarch menus (eg Save Core Preset under shaders) will load as expected and override the SCANLINE or RETRO shaders when the game is launched.
However the shaderset in emulationstation must still be set to one of these 2 settings, even when using your own shadersets. Switching the shaderset to NONE or AUTO results in the issues above where the shader setting in Retroarch defaults to off, including your own shadersets.
My shader settings now load correctly, even between reboots.
So in short,
1) Check that your shaderset is set to SCANLINE or RETRO in emulationstation
2) Load a game and save a shaderset as default for your core (via Save Core Preset in Retroarch)
3) Reboot and see if shaderset now loads automatically.
This may not be the cause of anyone else's issues, but hopefully it helps someone.