You could have an options menu where the user could choose between palette, say: gbc, gba, srgb. Then in development, have an algorithm that converts colours between colourspaces, either at runtime or beforehand (not sure how expensive it would be). Anyway it is up to you :)
I tried on gba and it is quite a bit darker as is to be expected.
Regarding your emulator, the second one looks better without the overlay shadow, as it is nice to have a consistent screen. At least in image editors, I had the best effect by making sure the screen is integer scaled and each subpixel in the mask 100% opacity multiplied to properly transform an lcd screen into it. Use a mask taken from the console, for example gbcc.dev/technology/subpixels.jpg and then make for layers, one filled with the black background, the others one for each subpixel of each uniform colour. For the subpixel colours use colours measured from setting your gbc / gba to fully red, green or blue. Then multiply the red channel of your subpixel over the red component of the rendered image and do the same for the other colours. In the end it looks quite convincing if done at 100% opacity. However I think it might look slightly wrong because it doesn't account for how the finished effect changes in brightness / intensity with increase / decreases in values. So maybe that can be measured and accounted for. To be honest I need to learn about that myself.
A cool thing that gbcc emulator does is emulate the weird interlacing effect that the gbc and gba both have. I say weird because somehow on real hardware, when you scroll horizontally you still get the effect and I would have thought it only applies to vertical scrolling. Probably it is me misunderstanding how it works and it not strictly being the same kind of interlacing that I expect.