You could maybe write a script that stores the custom normals as vertex colour in Blender, allowing you to then recreate them in Max off that with another script. Bit involved but guaranteed to come through intact. This is of course assuming you're already not using that vertex colour data.
It would be pretty easy to create a script that grabbed the first normal direction per vertex, reset it to one normal, then set the direction again. But sounds like it’s working out without that need.
I would love that script, if only to clean up the normals in my max files. Mark Dygert said: Ooh! I need the blender version in my life, but this is pretty great too.
You have to preserve hard edges too. I think i ran into this issue aswell with cad objects, and made a script that i can't find back, but i think unity is smarter than max indeed, and doesn't add extra vert if normals are the same.