I may have just solved it. The VBA examples and other posts I have read on here typically have:
LinearNormal = Point3dFromXYZ(0, 0, 1)
With that set, I am now getting values for Frame in the locals window.
At first the RowX.x/RowX.y/RowY.x/Rowy don't make much sense to me but after creating 2 lines using a common origin and these as endpoint values, their shape matches the normal and tangent vector directions with each line 1 master unit in length. So these appear to be unit vectors. Rereading the explanation for frame it does mention "This orthogonal matrix is presented with normalized local axes" so of course it does now make sense. With these values I should now be able to create 2 vectors and finally calculate the cross product after all.
One thing I have noticed is, the normalised Normal Vector components are in RowZ whereas the help file states "Frame.RowX is the tangent vector. Frame.RowY is the main normal vector. Frame.RowZ is the binormal vector". Does this mean my LinearNormal is not set correctly?