IN answer to you first question, I do not believe that it is possible to affect the parameters of your macro without having those specific parameters listed in your CALL statement. If they are not listed, the CALL will merely bring in the macro object with it's default parameter values meaning that they might as well not be parameters at all.
Since, in your railing object, you have multiple possible parameter sets, I would try to group them into logical sets then access those sets through a set of IF/THEN statements. For instance you could have a call for round balusters and another for rectangular ones. I would compliment this by setting up some hiding or locking of unused parameters so the object remains easily useable.
This will make your railing script a bit more complex but it will also be much more flexible.
In your window issue, it is certainly possible to affect a moveable hotspot in a macro. Just make sure both the macro and the calling object both have a parameter that can be matched. For instance if your macro have a hotspot that moves in the Z directions, say hsZ, then in the calling object have a parameter, say macroZ, that can be matched in the PARAMETER portion of the call statement (i.e. hsZ=macroZ). Make sure that both parameters are of the same type and that neither is locked or otherwise forced to a value or range of values excluded by the other.
HTH
Erich
AC 19 6006 & AC 20
Mac OS 10.11.5
15" Retina MacBook Pro 2.6
27" iMac Retina 5K