I have found BTMM to be ridiculously unreliable. Like you, my experience is that it works wonderfully on my home network, but is spotty anywhere else.
Sometimes file sharing works but not screen sharing, sometimes vice versa, sometimes both are fine, sometimes neither work. I have all the proper ports forwarded on my home router, as well as uPNP enabled.
It doesn't seem to matter where I am, the results are always different. For instance, sometimes I'll be on the wifi at work, and it will work fine; sometimes on the same network it won't. Same with home networks at remote locations, it is very hit or miss.
I further believe the problem is with BTMM/iCloud, and not my networking setup, because I also use Splashtop (an app for screen sharing from a PC/Mac to iDevices) and it ALWAYS works. Doesn't matter how I have my router set up or what network I'm on, even on Sprint's terribly slow 3G. It works every time, everywhere.
Back to my Mac sucks.