I must be missing something very basic here.
It's a little idiosyncracy. I don't think you can rely on surfaces loading in the same order each time. (Don't ask me why, there must be some good reason for it, but I can't think what). Further, surfaces that are textured the same and have other identical brush properties will be combined. But from what you say I assume your surfaces have different properties. So build brushes with those properties and then use findsurface(). Not something I have tried myself mind, but presumably it will work (fingers crossed).