Cutter comp requires a lead-in move in order for it to know what direction the tool path is moving . . in order to determine which side to offset to.
The lead-in has to be of sufficient length (one diameter or one radius, I don't recall which) or you will get an error.
Once the direction is established, you can then get on with your cut. In the case of a small hole or a hole you want to cut by spiralling down, youcan make the lead-in move above the part and then go down in Z to make your cuts.
I would advise that you put all of your setup G-codes (G17, etc) early and not spread them thru your code. Have them done before you enter cutter comp. I would think you need a diameter in the tool table for whatever tool you are compensating for. If you have a 'tool path' (meaning the path has a specific tool size already taken into account), then the tool table diameter would be the amount of adjustment you want and not the actual tool size . . . or more accurately twice the adjustment since it assumes a radius adjust and not diameter . . . if all that makes any sense . . .
I have had the best luck by putting cutter comp on the same line with the lead-in move. Lastly, cutter comp can behave erratically if you have any axis scales set to -1 for mirroring a part.