I agree with @joshcornejoc, there doesn’t seem to be a need to the CALL subqueries. Usually you use them for some type of processing a correlated query. Here you are just matching and passing the result.
I would look at your relationships. You have generic relationships with a parameter to differentiate the type. I would consider using different relationship types that identify the type. This should speed up the query as the execution will not need to get all the relationships with the general type attached to a node and iteratively filter them by a property (which also requires a property access), but instead filter by type directly when performing path expansion.