The “textstream” parameter in your smil file should work. I’ve just done a quick test here and using a random xxxx.ttml file so long as it was in the smil file then Wowza would use that and allow me to flip through the different captions.
I presume TTML is enabled for the app and the file does exist and is formatted correctly. It would certainly seem that way if it works with a symlink. It’s as though it is ignoring the textstream statement. Does the player still show a list of languages in this format or are none shown at all? Are you on the latest patch update (now at 4.2). You can update via the “My Downloads” page in the customer portal.
It may be best to contact us via the support process, also including a copy of your smil file and ttml file, and we can take a closer look. If possible enable CC debug properties first and try some playback tests again, just to capture a bit more detail.