Adding the offset information is simple, just poke the X,Y and Z translation data into into the proper locations of the matrix. Once the local transformation is created then concatenate it with the local transformation of its parent, then its grand parent, and so on.
vM = vMchildMparentMgrandparent…
Taken from http://www.cs.wisc.edu/graphics/Courses/cs-838-1999/Jeff/BVH.html
Does this mean for every recurve parent get its local transform, and multiply them together, with the rotation from the BVH?