It could help you with your speed problems:
1. If you use ICS it means that you have at least two connections. So verify the order for your network connections on the server. Go to Network connections on Control Panel, on menu make click in “Advanced” and them point to “Advanced Settings …” It?s recommendable that your internal network have the first priority on your network search order. This is important for name resolution and internal communication.
2. Verify that you didn?t use a gateway on your internal network TCP/IP properties (If your network is too small maybe you don?t need a gateway on your internal network, only at the external one), if you use it, check the entries on the routing table.
3. Configure, if possible, all your network cards to work manually with 100 mbps and full duplex. (I think this is not problem for you because you have a 100 mbps switch)
4. Check the TCP/IP properties for your internal network on the server. If possible use internal WINS and DNS server service and configure it at the TCP/IP properties on the server and include it on the DHCP Scope for your network.
It could help you with your access problem with the laptop:
Plan A: Create on the server the exactly user that you use to logon on the laptop and them check the appropriate permissions for this user on the shared files and printers.
Plan B: Configure your server with permissions for anonymous logon on shared files and printers (It decrease the security for your workgroup)