it looks like you used mesh which you turned into nurbs, maybe try with mesh booleans first. other than that, when you intersect the two objects you see that at this position there is a part where the surfaces would get very thin, which i assume could be causing the boolean to fail if the distance falls out of tolerance.
edit: there are also other parts which could result in very thin surfaces. when you follow the intersection around, for example above close to the yellow marking the intersection runs very close to the edge of the surface. such results can hinder a boolean to work either. working with complex polysurface and having random complex surfaces cut in is always a lottery.