You can use get_post_ancestors()
(codex) to get an array of all the ancestors id’s, so if I understand you correctly you might want to use
child_of=".end(get_post_ancestors($post->ID))
instead of
child_of=".$post->post_parent
where end()
(php doc) gives you the last element of the array.