If your line passes through coincident points, then Spatial Join will not be able to sort that out. Back to your earlier statement - you said you tried a join with a common field and it failed with an error. Since your points and lines have common filed, using a join to calculate field is the right way. I can't tell why you are getting an error. You will have to try to narrow it down to see if any particular feature(s) are causing the problem, or you may log a bug to Support. Thanks.