Bone heat weighting: failed to find solution for one or more bones error hair
Automatic weights is an useful shortcut to speed up the weighting process, but every complex character will need some handmade fine tuning: you can rely to automatic weights only if the character is a single-piece mesh, manifold, no doubles, no crossings, ecc .... In your case there are lots of different spare parts. The hair, in particular, has inverted normals; after you recalculate normals you can select all hair mesh, then shift select the armature, go to pose mode, unselect all, select the head bone and Ctrl+P, "bone" option: in this way, hair will be strictly parented to the head bone, without any weight issue. Then you will have to fix all the dress problems ... Good luck, and start using manual weighting (my favourite way is "with empty groups": this option creates empty vertex groups that can be manually weighted in edit mode).