First, there is the original profiling when compiling the object in profiling mode and the new call graph profiler with new portingset versions. The original profiling is not supported anymore with new portingset versions.
Second, why are you trying to profile a maintain session? Most time is always going to be spend with user input. The time to process/read/write any data is negligible. If you have a performance problem in a maintain session, then it is usually some database problem and you should look into tracing the database performance, e.g., corrupt indices, etc.
Third, the answer to your question, a profiling report will only be printed when the object correctly ends itself. In the case of tdsls3102s000, when executing the end.program event, the control is switched back to the parent session, which then kills the process of tdsls3102s000 at the end. If you want some profiling output for tdsls3201s000, check the function do.end.program() in tdsls3201 and comment out the choice.again() command. This will result that the session will end itself and the profiling output should be displayed. NOTE: The parent session will not be aware that tdsls3201s000 has ended and when switching back, the session will likely hang.