Is there a way to De-Broadcast?

I think what you want to do can be achieved by overloading the function via Multiple Dispatch. That is, implement a method of the function that takes a scalar as an input and makes the transformation to a vector so it then can be used by the method that only accepts a vector as input.

As a silly example, say you have a function that adds all the components of a vector. If you pass a scalar to that function, since there is nothing to sum, you expect the function to return that scalar. Therefore, we could have

sum_vec(x::AbstractVector) = sum(x) # This would throw an error for an scalar
sum_vec(x::Number) = sum_vec([x,]) # This works for scalars

As you can see, with the second method definition I insert the scalar into a 1 dimensional vector with 1 element which executes the first method definition of the function sum_vec.