The image grabber filter just writes the IMediaSample to a file. The problem is that CTransInPlaceFilter::Transform is never called on the image grabber filter. Using the v2 SDK I just connected the filters as described, called IMediaSeeking::SetPositions then Paused the graph, then CTransInPlaceFilter::Transform would be called. Using the v3 SDK I can not get the Transform method to be called. Even Running the graph doesn't work.
There were some changes from beta2 to beta3 in DShow decoder filter which could affect your scenario. But I cannot tell more as I don't have your filter to debug. I can only tell that decoder works fine with with several other filters that we test with, including Null Renderer. So I would suggest you to debug the source code of decoder filter to localize the root of behavior change.