Ok, more details.
Packages. There is a menu entry and it has "create new package". The package window, then offers "add" (or "use"?) > "to project"
As Bart indicated, it is possible to use custom paths, and have it all working. But IMHO (and that really is just an opinion) for most people it is better to create a package.
If your use path, here are a few things.
- check, if you have a ppu for the "failing" unit, in two or more locations => if so, something went wrong.
- compile with -va and the compiler will tell you about every file/unit. When it tries to load it, where it looks for it, if it found the ppu, pas or both....
If it only sees the ppu, then it can't recompile it. Yet, yes, if correctly set up, it should of course see the pas file too.
If you just compile, the IDE leaves it to fpc to decide what needs to be recompiled (at least I am pretty sure that is the way).
If you "build clean" the IDE removes all ppu, thus forcing fpc to compile everything.