Pathfinding without a navmesh

As hardingnick said - verify collisions on your models first. Using built-in navmesh will save you a lot of time.
If you decide this isn’t an option be aware that a lot of work is ahead of you.
You can use splines to move linearly along stairs or tight corridors, but if you want to be able to move freely in spacious areas you would have to implement a custom solution. One way would be to generate a custom navigation eg. grid-like, store it, and use it for pathfinding later. If your levels are big or require dynamic changes you can try to use flood-fill pathfinding to generate a grid dynamically.