the functions f1s and g1s are giving erroneus results,
With "erroneus results" you probably mean that you did not expect nested matrices as result?
It looks like the vectorization in f1 of your function Delta is the reason for that behaviour, but at the moment its unclear to me what exactly is going on here as at first look I loose track as of your multiple nesting of different functions. At least I was not able to reproduce the effect with more simple examples.
The vector d is hard coded at definition time in f(). The definition of f() is "take every element of d and add it to x" which would return a 3x1 vector. when f(a) simply adds the two vecors but if f() is called vectorized, Mathcad inserts every element of a singly in function f() and get back a 3x1 vector three times - so the result is a nested array.
In your file its the vector d consisting of ten eights which causes that mannerism in the definition of Delta.
One possible workaround is to make d a paremeter of your functions a sketched in the pic above.