For the second part "group ids haven't changed", you need to reverse the order of your assignments, since once you've changed your UID you probably don't have enough permissions anymore to change the GID.
For the first part, my perl gives me a
$ /tmp/k
Can't do setuid (cannot exec sperl)
error so I can't quite test it.
Update: I installed perl-suidperl so now it works. It looks like the setuid bits aren't working for you, since the effective UID/GID when run as yourself should still show as root if the file is owned by root and has the setuid bit set:
$ id -u
1000
$ id -g
1000
$ /tmp/k
Current Effective User ID: 0
Current Effective Group IDs: 1000 1002 1001 1000
Requested User ID: 1001
Requested Group ID: 55
Changing Effective IDs
Current Effective User ID: 1001
Current Effective Group IDs: 55 1002 1001 1000