Based on your description, I'd recommend:
1. Sample gear lube FIRST. Look for water, milky fluid, or any signs of excessive metal.
2. If no problems noted above, DISCONNECT shift cable at engine, and attempt to shift MANUALLY to ensure proper engagement. This helps to separate the control devices from the engine (so you know which way to proceed).
3. If engine shifts properly, place control lever in NEUTRAL. At the engine end of the cable, pull IN and OUT on the cable to determine the "free travel" that's present (shouldn't be much over 3/8"). MARK the CENTER of this travel area, so you can determine exactly where neutral SHOULD be.
4. With the engine linkage dead-centered at neutral... adjust the cable barrel so that the cable slides in place/connects precisely where it's "centered free travel" mark is.
5. Test shifting... if good, run in water and confirm. IF NOT GOOD... don't run until it's been corrected (stretched cable, worn control, etc).