Do you mean it works at first, but when you publish “Project + Global” even without changing a script, it stops working? That would be something new I think.
The issues I know about are caused by not cascading the updates: say module A uses module B, which in turn uses module C. When you then update module C, calling a function on module A will still call the call the old implementation on module C. So the update didn’t cascade through to everything that calls it.
That’s something very annoying, and I moved on to create my own external python library (see https://support.inductiveautomation.com/index.php?/Knowledgebase/Article/View/98/2/importing-and-using-3rd-party-python-libraries-in-ignition ). I just develop the library in a separate IDE (eclipse + pydev in my case), and wrote a script to copy the files I want to the pylib directory. Do note that also in this case you need to update all files at once, as the updates won’t cascade if you only update one.
Once it’s developed, you can also manually copy-paste everything to Ignition for the final installation, but so far it’s working great as an external library. I also have some other goodies now, like unit tests and version control. The main drawback of this approach is that the script can’t be seen in Ignition, and you need access to the server itself (ssh, file share, remote desktop, …) to alter the script.