Haha don't be sorry for asking questions! I'm here to help haha. :)
When it comes to parenting, in my newer games, I tend to have a few core objects that everything inherits from. For example, I tend to create a parent I dub an entity. This base entity controls very little at the start, but it tends to get filled with variables every object should contain. My best example is how I handle my own movement and collision systems. I set up a parent "rigidbody" object that has all my movement and collision code inside of that. Everything that move inherits from that, which leads to every object having the same variables and functionality.
Basically, don't write code twice. If a chunk of objects are going to share behaviors, just make a parent for them.
Because this was a game jam game, it's super hacky. The issue of enemies getting deleted when pushed into a wall was a crappy fix we made last minute to solve enemies clipping into walls. We basically just delete the enemy if inside a solid. I've personally never had any luck with the built in GameMaker movement systems, as stuff tends to clip through solids and things just break really easily. I also tend to build games that need really specific movement systems, so it's just easier to build my own.
I hope this helps! :D