Hello somersetit,
1_ A service layer in your case should provide a thin facade to your domain model to provide an interface for your service layer clients. How you organize your domain model objects is really up to you but it would make sense to keep it simple as possible.
2_ Very often there is a one to one mapping between these and again this would make your like easier.
3_ I like using forms that live at the top level of the application and have written classes that can dynamically generate these for models based on table gateways and information stored about them.
4_ I look at ACL as a way to implement business rules over resources for access by clients (A Model). Keeping the service layer as thin as possible comes back to my first point. You call the ACL from your controllers to determine if a client which has an assigned role has the required permission to to the requested resource and act appropriately,
I hope this helps.
Joseph Melnick