Group adjacent sections to create groups with biggest value, value is changing in groups
Your problem can be solved with dynamic programming using a straightforward algorithm.  Let $V[i..i+j]$ denote the value of a single group with numbers $i,i+1,\dots,i+j$.  You say you know all of those values.  Let $A[i]$ denote the value of the best way to group all of the numbers $1,2,\dots,i$.  Then $A[i]$ satisfies the recursive equation
$$A[i] = \max(A[i-4] + V[i-3..i], A[i-3] + V[i-2..i], A[i-2] + V[i-1..i], A[i-1] + V[i..i]).$$
Set $A[-3]=A[-2]=A[-1]=A[0] = 0$.  You can evaluate $A[1]$, $A[2]$, $A[3]$, etc. in that order, using a linear scan.  This takes 44 iterations of the loop, and each iteration of the loop uses a few simple lookups and operations, so the total running time will be extremely fast.  Finally, $A[44]$ holds the solution to your answer, i.e., the value of the best way to group the numbers 1,..,44.  If you want to retrieve the grouping itself, you can do that via standard techniques with prev pointers (each time you take a max, remember which one was the largest; or go back and re-compute it).