The button visibility is likely false, have you tried the following?
(Note: AddChildToCanvas returns the UCanvasPanelSlot it added the child to, so I simplified your code just a bit)
if (UCanvasPanelSlot * ButtonSlot = ButtonLayout->AddChildToCanvas(Button) )
{
ButtonSlot->SetVisibility(true);
ButtonSlot->SetAutoSize(true);
ButtonSlot->SetAnchors(FAnchors(0.f, 0.f, 1.f, 1.f));
ButtonSlot->SetOffsets(FMargin(0.f, 0.f));
}