If you make blueprint for every prop, then all logic for show hide is decentralized ie in blueprints, and this will be very simple blueprint code. But bit messy with all props.
You can make parent blueprint that has show hide logic, then extend that class for more advanced props.
Or you can read overlap results directly from collision box and do it all centralized in pawn blueprint. This will allow you to place any actors and hide/show them, for this make chain of casts from most common actor type to last, move to next cast type every time previous failed, so you do not cast every possible type on actor that was handled already. Choice is yours.
If you are not aiming at instanced meshes (and this would complicate whole idea of show/hide) I would suggest going parent/child blueprint way for every prop. It looks more elegant imo. And you have very very simple logic in parent blueprint class only, so should be easy to extend.