i'm guessing that "buttons" hasn't been defined by the time the OnShow event fires for the parent frame. you should check the blizz template code lua files to see when/where/how the buttons field is created.
TBH, your first problem is in your intent here. "My first project is display a table of information and preferably make it sortable"
While a table of information may seem simple in practice, the display part is quite complicated and sorting it is even more so. The way that blizzard's UI does the whole sroll frame is not a simple method to use.
-I'd recommend you start smaller, work with it in the chat frame first and then more to the other GUI elements.
-If you've already done that, then start smaller like with a simple frame of data that dosn't scroll.
Going on from that, there is a nice guide on wowpedia for the FauxScrollFrame that IMO is easier to use than the hybrid one
BTW, the whole of the Guild Roster is Load On Demand, so 99% of the objects in the roster don't exist till it's loaded by opening it. the default ui manually loads the GuildRoster & Friends when you hit the hotkey :)