You only use the spriteWithFile:rect: method if you want to create a sprite based on a section of an image, such as a sprite sheet. If you want to use the whole image use the regular spriteWithFile method.
Sprites have a default anchor point in the center. If you set the position to 0,0 then the center of the image is at 0,0. To make the image center on the iPad you need to put it at the center of the screen, like this:
CGSize s = [CCDirector sharedDirector].winSize;
[bg setPosition:ccp(s.width/2, s.height/2)];
This will position the image centered in the screen, every time.