The premise is quite simple, although it will take a bit of messing around with AviSynth's Overlay or Layer functions.
The way I see it, there are two approaches you could try:
Starting with the output from the g-force script, run it through a very strong denoiser to completely scrub all grain - but generate a "difference" clip from the source and cleaned video. Apply the subtitles, then overlay the difference clip. This is essentially adding the grain that was removed back in, only this time it will be on top of the subs.
or
Add the subs, then add simulated grain (from a filter such as GrainFactory3) using a transparency mask so that the grain is only applied over the subtitle text.