I have the same issue. The only stroke I generally don't swim is breaststroke and that's what my watch says I swim.
Sometimes it will get some of my butterfly right, but it never seems to record my swimming as freestyle. This is very frustrating. I have been trying to get this figured out for months with no success. It almost seems like Apple knows this is a problem, but they don't have a solution so they don't respond.
On the other hand, the upgrade with the new OS (4.0) for the watch and phone (11.0.2) have made split times available and it seems to accurately record when I break between swims or for sets. That's pretty cool. I just have to ignore the data on the stroke because it is always wrong. Maybe that will improve with the next OS update.