Get position doesn't effect the centre. The centre controls which point the sprite will rotate around. So for your situation you want it the be the centre of the image. For a 32x32px image you would want to the centre to be (16,16).
Your sprites position is counted from the top left of the screen(coord (0,0)) towards the bottom right of your screen. The higher the first number the closer you are to the right hand side of the screen, the higher the second number, the closer you are to the bottom of the screen.
Get rotation returns a number indicating the degrees of your current rotation. if it returns 0 then the sprite is facing the same way it was when it loaded, if it returns 180 then it is upside down. 360 is back the right way up again, however you've gone the whole way round. This is all stuff you'll end up learning in school at some point. You can search google for more info specific to this, or ask your maths teacher(they'll be thrilled that you sound like you're interested in maths)
For a simple asteroid-type game all you want to do for now is call GetRotation(), increase or decrease the returned value by a little bit and then SetRotation, the altered value to give it back to the sprite.
GetPosition and SetPosition do all this for you. You can Move() to move by a small around, or SetPosition to 'teleport' to a specific location. GetPosition will always return the location where your sprite is, no matter which method you use to move it. If you ever what to know where you are, call GetPostion().
Note that in your earlier code, you never actually gave a new position to the sprite. You calculated it, and then drew the sprite again without telling it that you wanted it to be.
You need to call SpaceShip.SetPosition(shipPosition) before you draw it.