You state that both the launcher and the bundle contain their own copies of the TempI class. One is loaded by the classloader of the launcher and the other by the classloader of the bundle. To the VM and therefore the OSGi service registry, these are different Class objects. So when you bundle looks for a TempI service which is of the TempI class known to your bundle, it finds none.
You need to not put TempI in your bundle and instead import the package. You also need to configure the framework to export the package using org.osgi.framework.system.packages.extra. Then you bundle will import the package from the system bundle and the service registered in the launcher will be visible to the bundle.