For the purposes of condition handling you must consider old PL/I programs and Enterprise PL/I programs as separate languages. Both old PL/I and Enterprise PL/I have their own signature CSECTs (CEESG010 for OS PL/I and PL/I for MVS & VM and CEESG011 for VisualAge PL/I and Enterprise PL/I), and separate run-time libraries in Language Environment.
This implies that when software conditions are raised in a PL/I source program on one side (either old or new PL/I) and is expected to be handled by a PL/I source program on the other side (new PL/I if it was raised in old PL/I, or old PL/I if it was raised in new PL/I), the program that is supposed to handle the exception will not even know about it because it uses a completely separate run-time library than the program that raised the condition.
Hardware conditions (such as ZERODIVIDE) have a better chance of being handled correctly across the old PL/I/new PL/I boundary because Language Environment gets involved and bridges the gap between the two separate PL/I run-time libraries.