SSIS: Scripts in package part not being executed when target server is 2016
Microsoft confirmed that this is indeed a bug that will be fixed in the next version of SQL Server Data Tools (SSDT) for Visual Studio 2017.

The confirmation was in the Integration Services (SSIS) Advisors Group on Yammer. The group is closed so I cannot post a direct link to it. However here is what I have been told:


  There is no easy workaround. A package containing package part has issues when persisting in previous target server version. You can try to either:
  
  
  Install and use SSDT for VS2015 release 16.5 (https://go.microsoft.com/fwlink/?LinkID=832313)
  Use your existing SSDT for VS2017, but always design your package targeting to latest SQL Server. When you want to deploy to SQL Server 2016, switch target server version to 2016, but DO NOT open the package again or launch deployment wizard. Instead, you should copy the dtsx into another empty project which does not use package part, and deploy that project.
  
  
  Sorry for the inconvenience. We will fix it ASAP.


NOTE: I have since then stopped using package parts and instead, I use parametrised child packages as an alternative.