Yes, to use the Axoloti I/O pin for other purposes you need to remove the corresponding code from the object, i.e. the following two lines from the Init section:
palSetPadMode(attr_inh,PAL_MODE_OUTPUT_PUSHPULL);
palWritePad(attr_inh,0); // inhibit, leave 0 at all times to enable clock
and then for clarity also remove the corresponding inh attribute. (I suppose I should have added "don't use" value to the list of pins in the drop down list so the object could handle this without modification).
Although principally not necessary for the 165 chips, one of the pins for the 595 chips in the P6 is connected to a port which is not available for general I/O in Axoloti. So I added it (PA8) to the dropdown (attribute) list for the 595 controller object and then re-used the list for the 165 objects even though it's not strictly necessary, as the P6 uses PA0-3 for the 165 chips which are available as standard Axoloti pins.
That looks fine, except that the output bits are numbered from 0 and upwards, i.e. 0 to 7, rather than 1 to 8. Actually, since the output register from which the bits are fetched is shifted when the bits are read in and never cleared, the patch as it stands will work as the bit numbers wrap after 'count' bits, but the bit numbering will be a bit confusing as the first bit will be 8 in the patch, followed by 1, 2, 3 etc.