From your post it is clear the ADD button functionality was present in all three environments at GO-LIVE. A possible scenario is at some time afterwards, a change (OMW project)that impacted P4310 - directly or indirectly - was advanced through DV, PY and into PD, perhaps without full testing. When the problem was spotted in PD, the consultant fixed it, but only in PD. Worth looking at documents and / or or asking your CNC guys for P4310 history.
You also don't say if your P4310 base object has any customisations directly applied - if your developers have directly modified P4310 they should have ring-fenced the changes using a process option.
You also don't say if you have tried using a standard JDE version in DV. My starting point in DV would be to use fast path BV, P4210, version ZJDE001. Does this version work as expected? If the ZJDE version works correctly in DV, the finger is pointed at the customised versions. Check the process options carefully and / or create a new version by copying the ZJDE version and apply your configuration to this new version. Try turning off any PO's that are obviously controlling customisations - your ZJDE version and directly derived copies should NOT have these PO's - so you will be running the vanilla code.
Thereafter, the next steps are obviously dependent on what information you have gleaned from the above.