Ok, i have checked your code. Lets please go back to post #2 of this thread. The grid.
The first blue item in this grid spans 12 spaces. You will note that in its "Cols" property, in the kitchen sink the value is 12.
The items on the 2nd row, both span 6 spaces. For each of them you will note a value of 6 in the VCol definitions. When creating the columns you need to look at how the output will work across all devices.
On the dynamic form, based on the kitchen example, you used.
dynaForm.SetCols("firstname", "6")
This means only the firstname will be sized to 6, all others will retain 12, if that wont fit on the 12 sized row, they are wrapped to the following row.
The reason that the other items in the dynamic form don't have a 12, is because its default.
For the items in the 3rd row, to make 12, each item is "4" i.e 4+4+4
For the items in the 4th row, to make 12, each item is "3" i.e 3+3+3+3
I hope this makes sense.