sounds like the only option is a stored proc. as it is going to be nearly impossible with CR only to do this.
there is really no way that you can parse a string to search for a name and get all the relationships, when the relationships appear to be in the name.
I wouldn't think that it would be too hard in a stored proc as you can create a temp table that you can add names to probably by selecting records from the table where the name exists in the record you want...but doing so in CR would not be as simple as you need to 1 get the record, then go back and read all the records again to find the matches...which is something that CR doesn't do.
I feel that a stored procedure to retrieve your reports data is the simpliest and best solution.
you might be able be make this work with a sub report by having the main report return a record(s), then linking to the subreport, and selecting all records where their name is found in the main reports name....but it would have to be an exact match (wild cards are bound to mess up the result)
again, as always (as DBlank knows), I say go with a stored proc.