Strapi not picking up changes to services.ts or controllers.ts, but sees changes to lifecycles.ts

Those controllers and services are not used by the admin API, only the content API.

I assume you are testing these changes using the admin? If so you won’t see any difference since the admin API is contained within the content manager package.