controlling motor with PWM
Your frequency is way too high, or conversely, you are not waiting long enough between pulses.  You should be sending a 1 to 2 ms pulse every 20 to 50 ms.  Note that this means 50 Hz maximum.

Also, your "1.7 V offset" makes no sense.  These pulses should generally be 0 to 5 V digital signals.  I followed the link you provided, but that only goes to a product sell page not a datasheet, so we can't tell exactly what voltage levels the digital signal must be.  When in doubt with hobby servo units, use 5 V logic.

Try a 1 ms pulse every 20 ms.  That should send the arm to one end.  Then try 2 ms every 20 ms.  That should send the arm to the other end.  Try it with the 3.3 V signal straight out of your processor and see if that works.  If it doesn't, make it a 0-5 V signal instead.  That really should work if everything else is hooked up right.  If you don't have a level translator chip, you can rig up something with a NPN transistor and pullup resistor.  That will invert, but just invert the processor output to compensate.  A HCT (note the T) logic gate powered at 5 V can also be used as a 3.3 V to 5 V converter.

Are you sure the processor power is properly filtered so that the current spikes the motor draws doesn't effect it?  A schematic and scope traces with a clear description of what happens in each case would help a lot.