Hi Srikant,
Using same structure both as screen fields and work area will complicate the program as you facing . What i meant was create different field or at least different work area like create P_NOTICE_SOURCE for Notice source etc.
I can see lot of optimization required in your code.
Like , if WA_ZLEGAL and WA_FINAL both are structure type , then you directly use WA_FINAL instead moving to WA_ZLNEGAL than coping into WA_FINAL
Thanks & Regards,
Arun