These are good questions. I had to search the code to find the answer. When a post is moved from a topic in one category to a topic in another category, that post will be included in the Time to First Response report for the new category if the post was created after the topic that you moved the post to was created. If the post was created before the topic was created, it will be excluded from the report. If this wasn’t the case, moving a post to a new topic could create a negative response time. The relevant code is here: discourse/topic.rb at master · discourse/discourse · GitHub.
One thing to note when running the reports is that the results are cached for 35 minutes. You will need to wait for 35+ minutes after running the report for a specific category so that you can get fresh results.