Can I force dnf to install an old version of a package?

You can install using a specific name-version as described in the man page:

dnf install tito-0.5.6-1.fc22

Install package with specific version. If the package is already installed it will automatically try to downgrade or upgrade to specific version.

To view all versions of a package in your enabled repositories, use:

dnf --showduplicates list <package>

Yes. You can install older version of package using dnf downgrade package-name[-version] if you already installed new one. But the old version still needs to be available on mirrors.

If the package is not available from mirrors, you can always download it manually from koji and then use dnf to downgrade such as dnf downgrade path/to/downloaded.file.rpm. But with this technique, you might need to resolve dependencies on your own.