First of all you do not need to create explicit members for child widgets and layout to your CustomScrollBox unless you need to access them later (even then you might track them down through their child relationship to your CustomScrollBox). In particular, having set the layout of a widget you can use QWidget::layout to get QLayout* and downcast it to QGridLayout* or QVBoxLayout*. Secondly you are supplying parents to most of the child widgets ctors. Normally you should not do that as e.g. the layout to which the widget is added will take the ownership i.e. the layout will become parent to the added widget. Below is in principle what I would do. It will point you in a better direction at least.
CustomScrollBox::CustomScrollBox(QWidget* parent)
: QWidget(parent)
{
setWindowTitle(...);
...
QVBoxLayout* vBoxLayout(new QVBoxLayout);
QScrollArea* scrollArea(new QScrollArea);
vBoxLayout->addWidget(scrollArea);
QGroupBox* groupBox(new QGroupBox);
QGridLayout* gridLayout(new QGridLayout);
gridLayout->addWidget(.../*whatever buttons etc*/)
groupBox->setLayout(gridLayout);
scrollArea->setWidget(groupBox);
setLayout(vBoxLayout);
...
[connect calls, etc.]
}