I do this with a shader. It's fairly straightforward once you break it down into passes. To make it simpler, I also treat the entire view as a whole, I don't break it up into background/foreground, etc. And it's definitely an effect you *can't* do with just making the tiles use that palette.
I first got the idea when I looked at this tutorial for ordered dithering in photoshop:
http://danfessler.com/blog/hd-index-painting-in-photoshop
This article also helped a lot with the theory, and applying the concept to a shader:
http://kpulv.com/368/Index_Palette_Shader/
You have that exact effect. The complex lightring/translucency/gradient effects but then with a palette clamped to a few colors after the effect pass. This is very different from simply making your sprite/tile palette low to begin with, and then apply palette shifting or overlay glows with transparency. I repeated the example in photoshop and looked at the layers as render passes in gamemaker. Of course I needed a render control object. The render passes are roughly like this. (from memory since I don't have the project anymore, sorry)
1. After rendering my view to a surface, I apply this sprite to it with multiply/subtractive blending using GM's own routines. It has two purposes. To add the vignetting on the edges and corners, but also the subtle ordered dither pattern (if you look closely enough).
2. Then I take that result and, for lack of a better expression, "convert" pixel values to texture coordinates on the image below. This part is in the shader (I found this shader on these forums years ago, I cant remember what it's called unfortunately). Basically it goes through your surface, pixel by pixel. Where the brightness of the pixel gets turned into the y-coordinate of this image. The lower color index this image had (less colors bars, and wider), the lower-bit-depth the end result looked.
3. Overlay the shader's result with the original view so I got some average between the two. I had additive glow objects around the room for the glow effect. I could have just as easily had a glow or shadow follow the character around for something closer to your gif.
Although the art direction is pretty different from yours, the effect is the same. It's only different in the style of the pixel art, and the palette color amount. Render to shader, apply vignette/dither, index colors to image coordinate on a limited palette image.
Unfortunately because I did this so long ago, I dont have the project files anymore, just these gifs. You might have luck in tracking down the shader I used by looking for 'palette shader', gradient map', 'indexing', etc, and varants, on the forums.