Did you upload the "track" file?
What maps are installed on the device?
Was "recalculate" on (it shouldn't be)?
Are you saving the data to the sd card (seems to be preferrable)?
The frequent "freezing" is odd. The Garmins can freeze on long rides related to data collection and the size of the data/fit file but that issue seems to appear around 180+ miles (that is, it doesn't explain the earlier freezes). People recommend closing the data collection and restarting it (so a new file is used).
The map displays the track route. It also displays a calculated course route. (Yes, there are two lines.)
Usually, these are on the same path (usually, they look like one line). When things aren't working quite right, the track route is what you need to pay attention to (the device needs to be displaying the map to be able to do that).
* The first (more basic) is track following: that entails keeping the blue arrow (representing your position) on the black-bordered purple line.
This method doesn't require maps at all. It just uses the current GPS coordinate to "draw over" the GPS coordinates displayed as the track.
The "off course" warning (it's part of this method) occurs when the current GPS coordinate is too far away from the track course (about 100 feet). It also occurs when the device doesn't get or loses the GPS signal (for example, when in a tunnel). It can also occur because the track coordinates don't quite follow the actual real-world position of the road.
If you get the "off course" warning, the first thing you should do is be aware that you might have lost a GPS signal and the second thing you should do is look the map screen to verify that you are basically following the track. If you are "far away" from the track (and going off in a different direction), you are almost certainly off course!
* The second is using what Garmin calls "course points".
This method is related to the first (and doesn't require maps either). These are a list of GPS coordinates with names and icons (little blue arrows, usually). When you arrive at a coordinate that has a "course point", the Garmin displays the name and icon on the screen. There are a few problems with this method. They are displayed at the turn, by default, which is, often, too late. They have a narrow "window" in which they are displayed. Also, due to map/real-world differences and GPS "error", they can even be displayed after the turn. And, since they are just labels, they might just be wrong.
* The third is using a calculated route.
This mode is the one familiar to users of car navigation systems. This mode requires maps with routing data. The Garmin fits the loaded route to the nearest roads to calculate a separate route. Ideally, this will be the same path as the track route but a few things can cause the two routes to differ. The usual cause for the differences is planning the route using maps that are different than the map on the device. If you get wacky directions from the calculated routing, use the first method to confirm it.
The first method is going to be the most reliable. But since it's just a list of GPS coordinates, it might not follow the real road exactly (that depends on how accurate the map used to draw the track is).