If your friend's Cateye was calibrated with GPS, your spoke-magnet Topeak unit isn't working.
My Topeak overeads my Garmin GPS by 0.01 mi/ 1 mi, or 0.1 mi/ 10 mi, or 0.3 mi / 30 mi. Trying to adjust it to closer tolerances by reducing the entered tire circumference, doesn't work. It undereads. So, I'm happy with 1% error.
Try resetting your tire circumference setting empirically by 25%. Is that working? If so, Fine tune it.
If your Topeak's magnet isn't strong enough, even at 2 mm from your sensor you can buy a cheap neodymium/iron/boron magnet to self-attach to your Topeak magnet.
If that doesn't work, it's either your head-unit /bar base connection (use fine sandpaper to scrub off oxidized corrrosion) or your head unit computer is defective.