But why the price field disappears when users chooses a category ?
And why the custom fields appears after to have chose the category ?
About your first question i don't know, the price field should stay there.
Are you sure you have the price active for that category?
In oc-admin you find the price option in 2 places, under listing --> settings and also when you create a new category under settings --> categories --> edit you must check Enable / Disable the price field.
About your second question
Custom fields are category related, it mean that you can create different custom fields for each category (example: if you have a category named "houses" you can create custom field for that category (square feet, room, bathroom etc..)
Than you can have a category named "cars" an create custom field "diesel","gasoline", "year", Model", etc..
you don't want to show the custom field "square feet" under the category "cars", that is why the custom fields are shown after you choose a category.
I hope this help you to understand.