This is tricky. Sometimes, files on the server were not owned by Apache web server user. You can check it by uploading the test file under your FTP and you can see the groups and users for your file and other files placed over there. If you see the difference over there, just contact server person and ask them to change all files of server should own by Apache web server user. Once it is done, you can do auto upgrade from your WP-admin panel.