Hey,
did you solve this issue in the mean time? I am also trying to achieve proper velocity output and I found a pull request, which might solve your issue of camera induced velocity: https://github.com/EpicGames/UnrealEngine/pull/6933 . They exchange your lines of codes with something slightly different, using a proper projection involving the absolute world position.
However, I cannot confirm that the GBuffer Velocity data is correct for moving objects. Could you explain in more detail what do you mean by “after a few hacks”? And why did you modify SceneCapturePixelShader? I am new to UE4 and am wondering if this can be achieved by a custom Global Shader? (Yet another blog...: Adding Global shaders to UE4)