Looking at the code, I do not see anything that would be making the code run twice.
Looking at the output, it seems that Guilda and Rosana are missing, but the correct amount of names are being printed (there are four members, and four printed names), which means the code is at least getting the correct amount of children.
My hunch is that something is not set up right in the Guilda and Rosana nodes, or something in the displayName function is not working correctly.