Hi,
Let's start from the beginning:
You have two keys components: DOMAIN NAME and DOMAIN CONTROLLER.
Once again,
You have two keys components: MYDOMAIN.COM and WS2008R2X64-0
You DC is WS2008R2X64-0 which is the provider of the domain MYDOMAIN.COM.
In order to RESOLVE names (both external and internal), the DNS query must point to WS2008R2X64-0.MYDOMAIN.COM OR the IP (private IP) of the DOMAIN CONTROLLER.
When you say: " I have my domain pointing to ns1.mydomain.com and on my server I created a ns1 nameserver entry under the forward lookup zone for mydomain.com." You say also where is your mistake: you can add ns1.mydomain.com, but WHAT IS ns1? The DNS / Domain doesn't know ANYTHING about NS1. So, you forward things to NOWHERE!
Then again:"My problem is in the SOA whenever I change my nameservers or the primary server from compname.mydomain.com to ns1.mydomain.com it takes effect... but then later I go back into it and it has changed back automatically to compname.mydomain.com"
Everything is correct here, your DNS knows WHO is responsible for name resolutions, when you change the NAMESERVER, it doesn't know HOW to resolve it, because the real nameserver is gone!
So, here you can find a resolution:
Add an ALIAS on your DNS: ns1.mydomain.com which points to: ws2008r2x64-0 OR IP_of_DC.
You can also create another server (physical) and call it NS1. You COULD also change the HOSTS file inside your DC and add a static in this way:
ns1.mydomain.com IP_of_DC
Now I hope you aren't too bored :P
Cheers