For some reason the bytefromhex is giving invalid results for this.  Changing to 0x80 works every time.  I'm baffled, but it must have to do with return values of the bytefromhex function.