How to stop blender from recalculating normals?
I created a Blender add-on for this exact purpose called TiNA which allows you to easily transfer normals between objects. TiNA basically turns the somewhat overwhelming Data Transfer Modifier into a set of more comprehensible operations.
There's a special branch for those using Blender 2.80 beta.



 Hotkey           | Operation 
------------------|-------------------------------------------------------------------
 Alt+N            | Transfer Normals from selection to active object
 Shift+Alt+N      | Transfer Normals from active object to all other selected objects
 Ctrl+Shift+Alt+N | Clear Custom Normals data for entire selection
 Alt+W            | Wrap Normals


In your case you could transfer the normals from an unsplit duplicate by selecting all objects, and - with the unsplit duplicate as your active object - hitting Shift+Alt+N.