You may have already done this but just in case you didn't, you can calibrate your boil kettle by weighing each gallon of water, which weighs 8.34 pounds for each gallon. You can put a dowel in your boil kettle and after each gallon you can pull out the dowel and mark the wet line for each gallon marking that you are interested in marking. Then you can mark your sight glass (if you have one on your kettle) exactly where the correct volume lines up on you particular kettle. This way when you collect the proper pre boil amount you can see the correct level on the now calibrated sight glass, or put the dowel in the kettle and fill until the volume line on the marker is covered by the wort. Now you know that you are collecting exactly the amount you need and can properly measure after the boil what you really are left with (either by the sight glass or sticking the dowel back in the kettle to measure). Then enter this into BeerSmith and see if this is more accurate than what you have entered now. Just trying to help you get this ironed out as I know it is frustrating. Also if you brew outside the temp and especially the humidity, will also effect boil off rate from batch to batch, if the humidity is drastically different from batch to batch.
John