For GPS sat nav which can perform routing, as opposed to a simple location tracker, you need vector information that contains a lot more than the just road shapes, (such as road class for speeds, carridgeway directions, junction types and limited access details), and it needs to be updated regularly. This really means obtaining it from a commercial source at considerable expense, which is likely to be beyond the means of anyone in the RISC OS market.
The information to drive the camera might be difficult to obtain, and it will probably require quite a bit of hacking to find out, but when the data is extracted, not a lot needs to be done with it apart from store it to disc, where other RISC OS software can manipulate it further.
An assembler emulator is the sensible next move, and a 2x-5x improvement over the C routines should be achiveble. Dynamic recompilation would be in the order of 5x-20x for frequently used code, but its quite an expensive technique in terms of memory useage, so wont be easy to do on the current generation of PDAs. When they start getting 256MB-512MB of program memory it will be more feasible.