Raghu,
The behaviour you describe is typical of an asynchronous problem. Why it would occur in PY and not in DV, if it is in fact an asynchronous problem, is highly subjective. Asynchronous problems can also be intermittent.
I'll try to explain how an asynchronous problem would produce the behaviour you are experiencing. Remember that this is supposition and may not be the cause of your problem, but the information you have provided leads me to believe that it is a strong possibility. You will need to investigate to see.
The asynchronous problem detail revolves around two processing threads running independently of each other, but what one process (as opposed to the thread it runs on) does depends on the results of the other process.
Say two process threads are running asynchronously, but process 1 depends on the results of process 2. The two processes may be run asynchronously for performance reasons. If process 1 completes before process 2 the results process 1 needs from process 2 are not available and an error occurs. Under normal circumstances process 2 would finish first, but if changes are made that indirectly effect the time process 2 takes to complete, process 2 may take longer to complete. Now if there are two changes that are made, each change individually may not delay process 2 enough for it to complete after process 1, but both together may.
This is the possibility that may be happening in your situation. The two changes (between the unaltered application running in DV and the altered application running in PY) are (1) the event rules you have added and (2) the different environment. PY probably has a lot more data than DV and this may slow down some processing running in PY compared to the same process running in DV. However the extra data may not slow down a process enough to cause an error. But, if event rules are added, the two changes together may slow down processing enough to cause an error.