To answer your first question, applyImpulse is a method defined on ChipmunkBody. Trying to invoke the method on an object of any other type will give you the compile error you are seeing. ChipmunkObject is just a protocol, not an actual class. So, since you are the creator of MyBall, whatever class it is, it's up to you to expose the underlying ChipmunkBody if you want to be able to apply impulse to it directly. Based on your second post, it seems that's exactly what you ended up doing.
To answer your other questions, the "offset" in applyImpulse specifies from where, on the destination object, you want to apply the given impulse, or push. Imagine hitting a cue ball on a billiard table with a playing stick. The place where your stick would hit the ball is essentially the same thing you specify with "offset". If you were to hit the ball straight on, the ball would travel forward. However, if you were to hit it slightly off center, the ball would shoot out in the opposite direction AND it would have some spin to it. The coordinates for "offset" are specified in the destination object's coordinate system - meaning the offset of (0, 0) represents the center of the ChipmunkBody (the center of gravity anyway). If you apply an impulse to a ChipmunkBody with offset of (0, 0) you will not get any of the spin you are seeing right now because you will be hitting it smack in the center.
The correct value for your impulse will depend on the mass of the body you are trying to propel forward. Small mass -> small impulse and vice versa. You can either get mathy and calculate your impulse from the F=ma formula, or you could just try a couple of sample values until you get the desired effect. I tend to favor the latter approach, picking a number and, if too small, multiplying it by 10 or, if too large, dividing it by 10 until I arrive at a result that "looks" right. Often time I overlay my running app with a simple "editor" that allows me to adjust some of these physics constants dynamically while the app is running. There are always a number of constants to play with to achieve a desired look (mass, moment, impulses, etc.) and I find that the empirical approach works best.
Finally, as far as documentation goes, look here. The docs cover the underlying Chipmunk C API, but the Obj-C version is just a wrapper on top and most of the methods and properties are identical and explained in detail there.