@ilovejedd: If you use manual management then sony_collection_name_template is ignored. If you want to have the category name (as in "Genre") in front of the category value(s) you must put it there yourself.
You can indeed do what you want with an is_multiple composite custom column (built from other cols, like tags). The template for the column would create a set of comma-separated values of the form "Genre: value, Category:value, value" or whatever you want. The hard part is the template.

It needs to check several fields for specific values and construct the appropriate list for the custom column.
What I would do is write a custom template function that does the job. Going this route gives you the full power and performance of python, of course at the cost of requiring knowledge of python. The function would get the values of tags, series, and what-have-you (I am not following all the details of the transformations you describe) and would construct the value for the composite column.
This post shows some of what you would do in the template function. What is missing is that you can get arbitrary metadata items for a book from the kwargs parameter. For example, kwargs.get('series') will return the value of the series or None if there isn't one. Similarly, kwargs.get('tags') will return a list of tags on the book. You use the lookup name as the parameter for 'get'. From what I understand, you would want a different function in each library, but I am not sure of that.
You could do this in a general program mode template using in_list, list_union, and the like, but it would most likely be very slow.