Editing Builtin Engine-Classes (UMeshComponent)

Hi guys,
in my game, I need addtional information on my meshes. I figured that the easiest way to achieve this is to edit the UMeshComponent header directly. I cannot simply inherit from a subclass, since I’ll want to use static and dynamic meshes in the future, so editing their base class would be the most elegant way. However I have a few questions on this:

Is it acceptable or good practice to edit the classes that come with the engine, instead of only inheriting from them?

What are the downsides?

And if I do that: can I simply override the header file? (VS tells me its read-only, but gives me the option to try to overwrite it.)

How do I version control it? (since the change would not be a part of my game folder).

I just want to know if I am about to do something very stupid.

I’m not sure about this, but my thoughts on it:
You have to redo it after every update, i don’t think version control is possible. Override shouldn’t be possible either.

In my opinion, changing stuff directly in the engine should be the last way to do it.

This is only possible if you’re using a GitHub (source) build of the engine. Changing the .cpp / .h files in a binary / launcher build won’t achieve anything.