"sel=out[15]" is failing because "out" is a pin in the OUT declaration, which is not allowed to be used as an input, or it is an internal bus which is not allowed to be sub-bused.
Just like you can solder more than one wire to an output, HDL allows you to connect more than one wire/bus to an output. You can create multiple narrower sub-buses from an output just like additional single wire connections.
What you want to do is:
SomePart(..., out=out, out[15]=something, out[__:__]=aBus, ...);