You can add data file using alter database
ALTER DATABASE Database_name ADD FILE
(NAME='Logical_name',
FILENAME='Physical_name')
You can move data using
DBCC SHRINKFILE('logical_name','EMPTYFILE')
But I dont know wether it works completely for primary filegroup with system meta data
If you want to move the the file why dont you detach move and attach?