Did you do b0PopCallback.attachPush() or did you do b0PopCallback.attachPop()
because you need the first one if you want that it react on button press.
As per the Nextion Instruction Set Touch Event Return Data
Using your modified HMI file (so we are dealing with the correct file)
When you press button in the Debug you will see it returns
0x65 0x00 0x05 0x01 0xFF 0xFF 0xFF
This shows that your button is indeed returning data to your MCU.
As per the Iteadlib Arduino Nextion Library
#define NEX_EVENT_PUSH (0x01)
#define NEX_EVENT_POP (0x00)
So how did you expect that your code
was suppose to catch a press event from the checked Send Component ID
in the Touch Press Event of your Button Page0 id 5?
It works! In the Nextion editor, I sent out a "touch press" event, instead of a "touch release" event. You can use but you have to use accordingly b1.attachPush() ( yes, this exists but you will hardly find) and b1.attachPop() . (Very logical, afterwards and if you are native English spoken : press = push and pop = release)
So brief, use the program compslider.ino (of Alex - see also other post: Arduin and Nextion Push button) and make sure to sent out a "press release" event, that is an easy and good start. (And indeed: a good manual would make things a lot faster to understand.)