I am aware of this issue, and as far I know it is not entirely due to Toolset.
To be sure we speak about the same issue, please check this ticket:
https://toolset.com/forums/topic/visual-composer-image-grid-not-showing/
VC tries to render the grid short codes via an AJAX call, which assumes that the grid ID is stored in a post meta, attached to the current page.
While, when using VC with Content Templates, the grid ID is saved with Content Templates's post meta.
So, it requires to hijack the AJAX call and replace the ID with a correct ID of the attached content template.
The main problem here is that VC stores some modules data in the relevant post postmeta.
When a Content Template uses VC, it follows the same pattern: the grid metadata is stored in the Content Template postmeta.
However, when rendering the post in the frontend, the current post (and this is also the one that gets passed on AJAX operations like this one to render a grid) is supposed to store that postmeta data, which it does not.
So, long story short, when using VC on a Content Template, some VC modules require that the current post they manage is the actual current post (for example, on modules for post author, etc etc), and other modules require that the current post is the Content Template involved (like this grid one).
Each module has its own data and rendering management, so what we will need here is a filter on that current post ID on at least all the modules that store and work over data stored in the Content Template.
We are aware of the issues and we are trying to find the best solution together with VC.