This used to work for me as well. Though off the top of my head I believe I used to set the parent control to the FlowLayoutPanel AutoScroll property to true. Because this wasn't working I the TableLayoutPanel and had the Dock set to Fill. However only the first column would appear on the far right of the parent tabpage.
I ended up just manually positioning the controls in a 3x grid. Here is the code for anyone else who needs to this.
private void AddChart()
{
Chart chart = new Chart();
chart.Location = GetGridPosition(this.panelDashboard, chart);
this.panel1.Controls.Add(chart);
}
private Point GetGridPosition(Control parent, Control ctrl)
{
int total = parent.Controls.Count;
int row = total / 3;
int col = total % 3;
return new Point(ctrl.Width * col, ctrl.Height * row);
}