Since I encountered this ever recurring question on our internal community sites and no clear explanation on it, here it is:

Scenario: you have Microsoft Project Client installed and you create a new project. When saving, you decide to store the Project file (.mpp) in a SharePoint document list.

You are able to successfully save the file.

When you are trying to open the file directly from the SharePoint Document library, the project is opened always in read-only mode so you cannot save it back.

The explanation: When a  SharePoint document is opened in the client application, the server will set a "lock " on the file for the specific user so that no other user can edit the file at the same time.

When Microsoft Project opens the file it also gets the information that the file has a lock on it so it will automatically open the file in read-only mode.

The background behind that is that Microsoft Project Client can work with mpp files in two modes:

-Server mode, where the files are stored in a Project Web Application site and can be simultaneously accessed by multiple people at the same time, performing different tasks.
-Client mode where the files are stored on the file system and can be accessed for example via fileshares.

In the case where the user uploads a file to a Sharepoint library, the file remains in Client mode so the Microsoft Project Client application expects the file not to be locked, therefore when Sharepoint sets the lock on the file the client interprets it as the file being opened by somebody else and opens it as Read-Only.

The solution in this case is either use Project Server Web Applications to store the projects and work with them or, choose to sync the document library locally on your computer and open the mpp files from your local copy. This will not set the said lock and you will be able to save the files back to Sharepoint through the sync process.