Different contacts for each shipment

I am working with version 8.0.0. When I started maintaining the system, we were on version 3.6. There has been a lot of customization to the code and I am trying to get back as close as possible to original code. Upgrading is a nightmare right now. Here is how our process works right now:

  1. We create an order and add contact info, like “Email Invoice to”, “Bill to address”, etc.
  2. We create multiple shipments for each order.
  3. The shipment contacts get copied from the order contacts.
  4. Each shipment can be modified to assign contact info specific to that shipment. The reason, we can ship to separate locations, bill to separate locations, etc.
  5. We create invoices from a shipment and want it to use the contact info from the shipment, not the order.

It seems that the invoice is pulling from the order and not the shipment. I know it was customized, but I’m wondering if I can get back to original code and keep the same logic. When I was tracing through code, I saw the global variable “MAIN_PROPAGATE_CONTACTS_FROM_ORIGIN” and it got me thinking that this might be possible and I can strip out all this custom code. However, when I added it, it did not seem to make any difference. Can anyone shed some light on this setting and how it should work or if this can be accomplished some other way?