There are multiple things to be considered.
First, you're absolutely correct: you should avoid restoring system apps. There might be some exceptions (as e.g. SMS, contacts, calendars are maintained by system apps as well), but let's postpone that for now.
Second, user-apps should be safe to restore, including their data.
Third, just to be sure, before restoring anything on a different ROM/device, you should take some pre-cautions: Go to TiBu's settings, watch out for the "Troubleshooting" section, and enable "migration mode" as well as "use system SQLite" (this combination saved my day more than once). While in "normal mode" e.g. SQLite databases would be simply replaced (which might cause the "owning app" to crash if the structure had changed), with "migration mode" TiBu attempts to only merge the data.
Forth, with above precautions taken, you could carefully try to even restore some of the relevant data (SMS, WiFi APs, etc.). To be on the absolutely safe side, a dedicated backup app for SMS etc. would be the better idea; contacts e.g. could be synced via Google or exported to .vcf
using the Contacts app itself, similarly calendars (sync or save to .ics
using a 3rd party app).
Last, just in case and to be on the sfe side: Restore your apps/data one by one, and check for possible side-effects in between; continue with the resp. "next app" only when you're sure everything is fine. Once running into trouble, remember which app that was; then factory-reset and restore all up to where you got allright (in case it was a system-app) or simply uninstall the troublemaker (in case of an user-app), skip the "trouble app", and continue carefully with the next.
After-thoughts from the comments:
- the above applies to system apps and user-apps (the "one-by-one" especially applies to system apps, as you cannot uninstall them it something fails; though in most cases it suffices to "delete data" for the affected app in Settings→Apps – if you still can go there, that is)
- the above applies as well when restoring a backup on a different device (as basically, that can be called a "different ROM" as well, right?)
- possible side-effects might include force-close-loops of the affected app, even on device start – which again would require a factory-reset if it was a system app (or a user-app which wants to start at boot). With some luck, a start in safe-mode is possible in those cases, and you might be able solving the issue from there.
- example case for a failed restore (from my own experience): I once restored the SMS from a different ROM (didn't know about the migration option then). Results were I couldn't open the SMS app at all (force-close). Other apps accessing the same database crashed when trying to do so (e.g. contacts). "Delete data" didn't solve it back then, so I had to factory-reset.
- worst cases (at least if you left out system apps themselves; their data is OK) are always solved by a factory-reset. Really worst-case (you restored some system apps and broke it) is solved by re-flashing the ROM.