You could try to modify this to suit your needs:
WITH Children (parent_object_id, referenced_object_id, child_table, parent_table, level)
AS (
SELECT f.parent_object_id,
f.referenced_object_id,
OBJECT_NAME(f.parent_object_id) AS child_table,
OBJECT_NAME(f.referenced_object_id) as parent_table,
0 AS level
FROM sys.foreign_keys f
WHERE OBJECT_NAME(f.referenced_object_id) = 'ROOT TABLE NAME GOES HERE'
UNION ALL
SELECT f.parent_object_id,
f.referenced_object_id,
OBJECT_NAME(f.parent_object_id) AS child_table,
OBJECT_NAME(f.referenced_object_id) as parent_table,
level + 1
FROM sys.foreign_keys f
INNER JOIN Children c
ON c.parent_object_id = f.referenced_object_id
)
SELECT parent_table,
child_table,
parent_object_id,
referenced_object_id,
level
FROM Children