The use of special characters for spanning headers only works for LISTING. When you route your output to other ODS destinations, you should NOT get spanning headers, but should just see the character + or * once.
According to the doc,
In traditional (monospace) SAS output, if the first and last characters of a header are one of the following characters, then PROC REPORT uses that character to expand the header to fill the space over the column or columns:
:- = \_ .* +
so if you pick some character that's NOT in the above list (like the # or ^), you should NOT get repeating characters even in LISTING window.
cynthia