To get better results with grain, use a bitmap that has higher contrast.
Paper grain relies on the variance of the grey-scale pixels of the grain image around the area of the brush as you're making a stroke.
If there's little or no variation around the area of the stroke, then grain has problems affecting the stroke.
Try to use grain images that have decent variation through dark and light colours. Best results are also attained if you use grain images that have more variation in smaller areas. Eg: a sand texture will give better results than a smooth white-to-black gradient over the grain image.
AndyRage's mantra for graphics engine code:
"Sure - how hard can it be?"