It turns out it was because I had neglected to assign the final parameter of CreateFrame to the new MeshContainer the function generated...simple human error. However, this does raise an interesting point: you can not unit test D3DXLoadMeshFromHierarchy() or any of the functions in ID3DXAllocateHierarchy, because D3DXLoadMeshFromHierarchy() checks the data pointed to by the individual parameters for validity.
In my case, by neglecting to assign data to the MeshContainer pointer, D3DXLoadMeshFromHierarchy interpreted the null value as failure (despite the S_OK result my interface code path returned). I suspect that may have something to do with the final step of generating the AnimationController object.
In any case, I guess the lesson here is: unit testing is not a panacea.