Bricked ATMEGA328PB by setting low fuse to 0xF5 - How to recover?
Bricking a chip is never fun. If you really want to learn how to fix it, you certainly can, but it is usually not time efficient or cost effective unless you really want to learn.

Diagnosing the Problem

For reference, here is the datasheet for the ATmega328pb. The parts on clock source selection are in section 11, and the parts on self programming and fuse bits are in section 32. Also of great reference is this fuse calculator, which doesn't have the 328pb, but the 328p has the same fuses.

If all other fuses are default, low fuse of 0xF5 means the device is in external clock mode with a startup time of 6CK and additional delay of 19CK after reset. The external clock must be extremely accurate. See datasheet section 11.7 for more details. However, the serial programming and reset are still enabled, so if you connect a stable clock from a source as shown in figure 11-3, communications is still possible. The clock must be on and stable BEFORE the MCU powers up.

If your programmer still cannot talk, there is likely something else wrong. Are you positive you set the LFUSE and not the HFUSE? 0xF5 on the HFUSE would completely disable normal serial programming. Have you verified the frequency of your clock signal? Is it at the correct voltage for your MCU? Are you sure there is a common ground between them?

Other Thoughts

I developed an ATtiny High-Voltage Serial programmer a long while ago to fix these types of issues, but that won't help with the mega328, which would need a High-Voltage Parallel Programmer to reset the chip. I think a lot of the principals are the same if you are just interested in learning.