I must say, I don't understand your code.. Why do you need ButtonNameDisplayLoop variable? It's local and not static, so it will always equal 0 when you call this function.
Also, if you need buttons to be created in a horizontal line with 104px intervals, you need to pick the last button (rightmost), and then add 104 to its x-coordinate. On your screenshot you don't pick any button instance, so the first instance will be used. If you need to create more than 2 buttons, this will become a problem.
Then, when you are creating a new button, you have ButtonNameDisplayY+72 as X coordinate, is this a typo, shouldn't it be ButtonNameDisplayX+72?
Finally, you don't need the last event (pick instance by UID), you can set text right after you create the button, in the same event.
.
I suggest you carefully review your code, fix the issues, and use Debug Mode if there are still any problems.