Structural Columns to match Surface

Dear Dynamo community,

This is my first post here. I need some help to determine how my code is not implementing what I expected. I am trying to get the intersection between grids on the bottom level and imposing them on a complex surface. I am getting point data returned to create curves and turn into columns. However, the list structure is not in the appropriate context and it links the wring arguments or is missing some.

I have played with cross product and auto but no fix so far.

Any insight is greatly welcomed!

Here is the code!