The reason it only works when the grounds are connected is because otherwise the data signal from the teensy, is like its not connected to the circuit at all. The signal comes from the teensy and it will only travel where it can get back to the teensy, there is no direct connection between the two grounds because two power sources go through transformers from the mains. AKA without a complete loop there is no circuit where current can flow.
It sounds like you have shorted something out, this is not good it will damage the hardware and maybe even you. Follow all of your leads and unsure that they can not touch.
The serial communication. Have you already got the code working on the teensy and in processing working independently? I would suggest doing the two ends first, check they are working then get things talking. This way you will know what you need to communicate and what factors to consider with the effects of the communication, before you go and get that working.
Right now I am coding something similar, I am improving the processing side of my music visualization. Soon I will add the communication code to it and test it with my display code, to get a better idea of its performance. So you could play around with my processing code to, if you want. Really both of our needs are the same on the computer side.
The communication code will be easy, worry about making the visualization look cool.
I will post my processing code soon, its on my other computer.