So.. for you it works but for your friend it doesn't? I don't really see how it can go wrong. In void OnLoad() there is a GameObject.Find that sets a GameObject variable. This variable, with the correct GameObject (which was set in void OnLoad()) is then used in void Update(). Is your friend using the same mod-loader version as you? The one I use is 1.0.1 and that is also the version that I used as a reference while compiling the optimized code.
If everything is the same... I don't get it. Maybe there is just something I don't notice or overlooked.
I do have one more trick, but isn't quite as efficient. I can set the GameObject.Find command to a timer. It will still be in void Update() but it won't run every frame because there will be an if statement that only allows the command to run if some time (a second, half second, etc) has passed. I have used this before for an object renaming system in my Iced Tea mod. The fps drop is minimized because the command doesn't run every frame, but it still repeats.