How often you take them depends upon your body and the level you're looking to achieve. Many doctors feel that a serum level of 180 and above is fine. Most of us including the Pernicious Anemia Society feel it should be MUCH higher. My personal feeling is 500 or higher and the Pernicious Anemia Society recommends 1000 or higher!
Some people get away with a shot every few months. Others need it each week. If you're especially low, you'll likely need loading doses. You can indeed self administer and if it would be cheaper would be dependent upon how much your copay is and how cheap you can get the B12 shots.