I'm not sure if this is still relevant but I had a similar issue under the following circumstances.
With a stacked column chart:
X = Year
Y = Amount
Data grouped by Category.
Value Grouping:
Label = blank
Value = "=Sum(Fields!Amount.Value)"
Category Grouping:
Label = "=Fields!PeriodDesc.Value" (this is the readable Year in this case)
Group By= "=Fields!PeriodID.Value" (just the key field for the period)
Series Grouping:
Label = "=Fields!Category.Value"
Group By = "=Fields!Category.Value"
With these setting the legend rendered as "CategoryName -"
However, if I reversed this and set the Series Label to be blank (in the Series Grouping Editor dialog) and set the Label to =Fields!Category.Value (in the Values Grouping Editor) then the legend rendered as expected "CategoryName"
There was no need for any custom code.
Hope this helps somebody....