so I've managed to track the problem down to some combination of the following
hair_new2
hair_default2
hair_new3
hair_default3
Update:
I can confirm that trying to access any of those from the fragment shader causes the error, but hair_new1 and hair_default1 both work fine, despite all of them using the same code.