I think it has to do with the override of spriteBatch.Draw that you are using. yours only seems to take into account where you are drawing the texture
you need to use the override that includes the source rectangle(the frame on your spritesheet) as well as the destination rectangle(where the texture is being drawn).

Find content
Not Telling