Ya, that script will export each hair over each other. You only defined one hair file but each of your hairs are writing to the same file namne.
Your need a hair_file1 and hair_file2, etc like you are doing for the curve_top_group1,2 , etc.
so:
hair_file1 = os.path.join(export_directory, ‘hair_export301VU.abc’)
hair_file2 = os.path.join(export_directory, ‘hair_export302VU.abc’)
hair_file3 = os.path.join(export_directory, ‘hair_export303VU.abc’)
etc…
abc_export(hair_file1, curve_top_group1)
abc_export(hair_file2, curve_top_group2)
abc_export(hair_file3, curve_top_group3)
etc…
Do you see what was wrong and how to fix it?