HI,
That does happen on the product page on the frontend, where you usually want to display the product custom fields.
In the order/invoice however, it's the direct value of the variant itself which is used. So if you have the value in the main product, it won't be used there.
That's the normal behavior.
If you want to change that, you need to edit the code of the view which displays the custom field in the order and modify the code to load the data of the main product with a MySQL query, etc. A PHP developer can change that for you.