If you create a custom field in Marketo, it does it on the lead (person) object and there is no way for you to move it to either the company or opportunity objects. You’ll also notice there is no option to delete the field after the fact as you can only hide it. This may seem constraining but fear not because Marketo Support can help.
We had some custom fields that we wanted placed on the customer object based off of a recommendation of our integration partner. While it’s true that Marketo Support can’t move fields once they are created, they can create them on the object themselves. You have to provide them with a spreadsheet of the field types and field names. If you have already created the fields, you will need to delete them before Marketo Support can add them again.
Speaking of deleting fields; it seems impossible but all you need is help from your support team. You can ask Marketo Support to delete a field completely as long as the field is not in use with any smart campaign, smart list, form etc. Keep in mind, this is final and you will lose all history of the field. For us this was fine as we actually hadn’t used the field yet.