If you want to keep the grain structure you will have to accept bigger filesizes, thats just how it works... many small changing details every frame like grain and noise is just hard for an encoder.
The good thing about Constant Quality settings are that you can predict how it will look... but not how much the filesize will be. On the other end then VBR is more predictive in filesize, but not in quality, and CBR even more predictive in filesize and somewhat also in quality.
if you want to upload to any web service in the end, then it almost certainly will be encoded once more and here it is hard to gurantee the grain will survive. It kinda the same with broadcast, where the endresult mostly is re-encoded several times and in too low a bitrate so everything will look mushed up on the final delivery screen :-(