How can I parent objects so that only position and not scale is applied to the children when scaling the parent?
You can actually parent to a vertex to achieve something like this.
I would probably parent empties to the vertices where you want to add a child object and you can then use constraints (such as 'Copy Location', 'Copy Rotation') or make that empty a parent of your child object to link your child object to there.
To achieve this, create the empty and move it to the location of the vertex. Select the empty, hold Shift and select the 'parent' object. Hit Tab to go into Edit mode (you should now be in Edit mode with both the 'parent' object and the empty selected). Select just the vertex and press Ctrl+P to Make Vertex Parent. The empty should now be linked to that vertex.
Next simply add a 'Copy Location' constraint to the 'child' object to copy the Empty's location (this is similar to parenting) and a 'Copy Rotation' to the 'child' to copy the rotation of the 'parent' object. This way it will stay at the location of the vertex but with the rotation of the parent object, ignoring all scale.
I hope this makes sense - only limited time to submit this answer. I can add more detail if this seems helpful (unless someone else wants to add a more detailed answer along similar lines).