If you're running Vista or later then for security reasons services are always created in Session 0, which is separate from any user session. You cannot share UI elements or send messages back and forth between sessions, which is probably why your automation stuff isn't working. Just because a service is running as a particular user doesn't mean that its process is running in the same session. Services must continue to run even when nobody is logged on, so they must be created in their own session.
As a workaround I think CreateProcessAsUser
could be used to spawn yet another process in the user's session. You would then need to use interprocess communication (e.g. WCF over pipes) to manipulate it from your service. Sounds messy. The better option might be to forget about the service and stick with a console app.