This appears to have been part of the problem.  using `survivorship(... , 1) instead of `survivorship(...)` transformed the shape -- need to be consistent about this kind of thing.

I think there are some subsequent bugs, like this in the code.  You can use break-points to step through the function call and inspect the dimensions to see exactly what the issue is.