It seems to me like the issue is that once you do the 'Add Join' during the model process the Name_layer is only stored in temporary memory, so it needs to be created. This is mostly a guess. My first try would be to try to use a spatial join instead of an Add Join if you can. If that didn't work I would attempt to create a new feature from the added join inside that model by using the Name_Layer as the input. Hopefully this would make sure that if for some reason there was no geometry on your file it would be created.
So Name_Layer > Make XY > Copy Features
This also assumes it is point data, if it is polygons, you'll have to take that step further and do the polygon creation. if you need help with that its pretty easy to find on google.