Looks like for the most part its getting the correct values but there are some kind of slicing artifacts where it is either going outside the volume on the edges or maybe getting mixed up between the slices.
The 3d volume lookup I gave you does not care about powers of two at all.
Can you try a saturate(position) on the position you feed to the texture lookup? If you are going outside the volume that should tell you. Or even do something like this
if( pos.x < 0 || pos.x > 1 || pos.y < 0 || pos.y > 1 || pos.z < 0 || pos.z > 1)
{
return currentvalue;
}
This way it should not continue to add edge pixels and you may see a hard black line indicating places where the ray tried to exit which will tell you if there was more of a problem with how you normalize your coordinates into the 0-1 space.
Also try disabling the bilinear Z filtering while testing. That means you can just sampleA instead of blending sampleA and sampleB.