Atmega328P ISP wont work

I have a grbl board that runs on an Atmega328p. On the board I have also provided the ability to control the stepper drivers through an external control step and dir signals. The schematics are shown here. For the sake of simplicity, the Atmega328p's ISP part of the schematic is shown. Now since the datasheet for the MCU says that when its not powered, the MCU pins should not see voltages more than Vcc+0.5V and less than -0.5V. Which is why the control signals from the Atmega328p are OR'd with the external signal inputs. The limit and spindle signals are buffered through a dual buffer.

Now on another revision of the board without this added feature of being driven from an external control logic, everything works great. However, on this board, I'm not able to program the Arduino bootloader using the ISP header (using a Pocket AVR programmer). I'm was not sure if these OR chips and the buffer were interfering somehow which is why I removed them from the board and I'm still not able to program the Atmega328p with the Arduino bootloader. To eliminate a kaput programmer as the cause for the issue, I tried using the programmer on the earlier version board and everything works great there.

TL;DR, ISP programming won't work on this board and I'm not sure if the added OR and buffer chips are interfering. Any help would be appreciated.

The schematics:

When you encounter an error you’ll see a button on the right side of the orange bar “Copy error messages”. Click that button. Paste the error in a message here USING CODE TAGS (</> button on the toolbar).

This is the error that I see:

Arduino: 1.8.5 (Mac OS X), Board: "Arduino/Genuino Uno"

/Users/electrophile/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/bin/avrdude -C/Users/electrophile/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/etc/avrdude.conf -v -patmega328p -cusbtiny -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m 

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:01:35
         Copyright (c) 2000-2005 Brian Dean,
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/Users/electrophile/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/etc/avrdude.conf"
         User configuration file is "/Users/electrophile/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : usb
         Using Programmer              : usbtiny
avrdude: usbdev_open(): Found USBtinyISP, bus:device: 020:018
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : USBtiny
         Description     : USBtiny simple USB programmer,
avrdude: programmer operation not supported

avrdude: Using SCK period of 10 usec

avrdude: error: usbtiny_transmit: Input/output error
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: error: usbtiny_transmit: Input/output error

avrdude done.  Thank you.

Error while burning bootloader.

This looks like it might be relevant:

I will try on a different machine. However, it works with my Mac on an earlier version of the board which is why I'm guessing OSX may not be the issue.

Edit: As it turns out my Mac was an issue. On the Mac I'm running macOS High Sierra and maybe there is some incompatibility there. I tried with my Windows machine and it works great. Strange!

Thanks again for helping me troubleshoot this.

High Sierra broke compatibility with some USB devices; I wouldn’t be shocked if that was impacted - though I haven’t heard complaints about USBTinyISP not working on high sierra, which I would think would generate more complaints than that.