In CRM 2016 with SP1, it seems that a “bug” has been introduced where the price of an order product added from the catalog (an “existing product”) cannot be changed. This was not the case in earlier versions.
A field on the Order Product form, named Pricing (internal name ispriceoverridden) determined whether the price per unit can be changed. However, on the Order Product form this field is set to read-only with a value of “Use Default”; so there is no way to change the value to “Override Price”.
For now, it seems the only way to get a non-default price for a product is to set the price in the opportunity and then follow the quote, order process.
Others have reported this issue, for example https://community.dynamics.com/crm/f/117/t/200698
The workarounds appear to be change the default for the field ispriceoverridden to Override Price, but this means that the price from the product catalog is not added automatically or add JavaScript to the Order Product form to make the Pricing field enabled (you need to add a short delay to the JavaScript to allow the form to fully load).