Creating dynamically isn't necessary in my situation and this can instead be solved by simply toggling the visibility of the components. By unchecking the visibilty option within the component attributes and then implementing this code block
% Value changed function: ExtraMilestoneRequirementsCheckBox
function ExtraMilestoneBoxChecked(app, event)
value = app.ExtraMilestoneRequirementsCheckBox.Value;
if value == 1
app.PhasesWithMilestoneRequirementsLabel.Visible = 'on';
app.PhasesWithMilestoneRequirementsListBox.Visible = 'on';
if value == 0
app.PhasesWithMilestoneRequirementsLabel.Visible = 'off';
app.PhasesWithMilestoneRequirementsListBox.Visible = 'off';
into the callback for my checkbox I was able to have the listbox toggle visibility based on the button results.
I will leave the OP up with this answer to help anyone in the future who attempts to follow the same logic as I did and ends up googling how to create a GUI component on button press haha.