uitree() is an undocumented routine that has stayed undocumented since it was introduced in R14. There is therefore no way to say that it is working incorrectly. It does whatever it does.
There is nothing in the code you show that references MenuTako so there is no reason shown for it to ever be invoked.
You mention something about nested functions but you don't show one. You also don't show create_struct_tree
You do not make it easy to assist you.