Question about Modifying ERPNext when its already deployed

lets say i installed vanilla erpnext on a server machine on my client. however my client said they want to update or customize that requires some code change. do i need to reinstall the erpnext using developer mode so i can change the codes inside?

If it is only custom fields, custom scripts, custom print layouts, … than you can do all that in production mode.

If anything major then make it as separate app. This way you leave the option of easy upgrade. Changes to core will rule out upgrade possibility.

If say I will support a heavily modified production version(core). is there a way to convert that production version to a developer version

I would recommend creating a fork on git from erpnext repository and make your changes here. Any updates should then be merged against your changes.