Programming Atmega328pb not always work

I am trying to program Atmega328pb uisng AVRasp and Arduino as ISP and its similar version
some time i successfully write program
and most of time it error when verifying the program
plaase note that i also test Atmega328p on similar board it works without any problem
but i found problem with atmega328pb
so i am sure that there is no problem with hardware but software?

Also please note that bootloader burring process always works(99%) with atmega328pb

Shaheers:
and most of time it error when verifying the program

Please do this:

  • When you encounter an error, you'll see a button on the right side of the orange bar "Copy error messages" in the Arduino IDE (or the icon that looks like two pieces of paper at the top right corner of the black console window in the Arduino Web Editor). Click that button..
  • In a forum reply here, click on the reply field.
  • Click the </> button on the forum toolbar. This will add the forum's code tags markup to your reply.
  • Press "Ctrl + V". This will paste the error between the code tags.
  • Move the cursor outside of the code tags before you add any additional text to your reply.

If the text exceeds the forum's 9000 character limit, save it to a .txt file and podst it as an attachment. If you click the "Reply" button here, you will see an "Attachments and other settings" link.

Following is the code while i burning bootloader with USBasp to atmega328pb

Arduino: 1.8.9 (Windows 10), Board: "ATmega328, Yes (UART0), 328PB, 2.7v, LTO disabled, 16 MHz external"

C:\Users\mubas\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino14/bin/avrdude -CC:\Users\mubas\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.0.2/avrdude.conf -v -patmega328pb -cusbasp -Pusb -e -Ulock:w:0x3f:m -Uefuse:w:0b11110101:m -Uhfuse:w:0xd6:m -Ulfuse:w:0b11111111:m 

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\mubas\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\2.0.2/avrdude.conf"

         Using Port                    : usb
         Using Programmer              : usbasp
         AVR Part                      : ATmega328PB
         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
           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
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

         Programmer Type : usbasp
         Description     : USBasp, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9516 (probably m328pb)
avrdude: erasing chip
avrdude: auto set sck period (because given equals null)
avrdude: error: program enable: target doesn't answer. 1 
avrdude: reading input file "0x3f"
avrdude: writing lock (1 bytes):

Writing |  ***failed;  
################################################## | 100% 0.04s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x3f:
avrdude: load data lock data from input file 0x3f:
avrdude: input file 0x3f contains 1 bytes
avrdude: reading on-chip lock data:

Error while burning bootloader.
Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0x00 != 0x3f
avrdude: verification error; content mismatch

avrdude done.  Thank you.

But sometimes it works, here is when i tried with Arduino as ISP
i pasted verbose in pastbin for reference

And again i upload the program using Arduino as ISP(because bootloader did not work or i may made any mistak)
the following error verbos is shown and it says verify mismatch

Did you load Arduino isp sketch from the file>examples
Once it is loaded then from tools> select programmer usbasp. Your target ATmega 328 p/b variant to be selected and connected to the usbasp. Once connected you then select tool> burnbootloader.

yes i did the same way, i use both usbasp and Arduino as ISP, i also have MPLAB snape it works well but not others two mention did not always work

Well First of all, is your bootloader running through your board or through an EDCDPcom?