I guess # is a special character in Pd. If you open a Pd patch in a text editor, you'll see that all lines begin with #. I tried what you describe (I just set the name "test#" through canvas' properties, didn't send a symbol to it) and it's true indeed. I did save a test patch and then edited it in nano (terminal based text editor) like this:
#N canvas 343 280 450 300 10;
#X obj 107 93 cnv 15 100 60 empty empty test\# 20 12 0 14 -233017 -66577 0;
Notice that I put a "" before # which is an escape character for special characters. Now, when I open the patch, the canvas reads "test#".
I tried to simulate this in a patch by sending the message "list 92 70 35" to [list tosymbol] (these values are ASCII "", "F", and "#") and then to a message "set label $1", which is sent to an empty message, but this results in "\F#", and when sent to a canvas, it results in "\F$".
I think # (and ) is out of the question for use inside Pd patches, but if someone can prove me wrong, I'd be happy to see that.