XFile が読み込めなかったって本人が言ってるんだから、
>MessageBox(NULL, "Xファイルの読み込みに失敗しました",szXFileName, MB_OK);
ここ通ってんじゃないの?

D3DXLoadMeshHierarchyFromX の戻り値調べてみなされ。
後は一応、渡してる引数に異常な値が入ってないかどうかも。

パスはありえるな、D&Dで起動してカレントがデフォルトになっちゃってるとか。