Okay, so this is a shot in the dark, but there's probably a way to fix the surfing/bike issue. My idea is just to hide the follower's sprite, but keep it moving right behind the player. Person events can still move even if they are hidden, so whenever the player uses Surf or the bike, just hide the sprite but keep it moving at the same speed right behind them. Then, when they get off, have the sprite reappear behind them (this could screw up with Surfing because the Pokemon would appear over the water, so maybe have it reappear on the same spot as the player). This would be pretty hard since the scripts for those two things are not regular scripts so it'd probably be tricky to edit the hidesprite thing, as well as having the sprite automatically move to wherever the player is on every map). But that's my take on it.