Using XDocument properly
As you are using a singleton which loads the document once, I would say "Yes you will probably see some degradation in performance to service calls if you only load it on demand".

If your service is the one and only program which modifies the document then your approach is probably viable. 

A few notes:


Don't throw Exception. Be as specific as you can.
You mentioned that the file might be big. I don't know what the particular requirements of your application are but be aware that should the service crash at the right moment while saving changes you'll very likely be left with a corrupt xml document because it was only partially saved. Even if it is only a one a million chance it can still be a big problem.
Your service sounds like it's using an xml file as some kind of cheap db backend data store. While there might be scenarios where this is the best/only option forward you might want to consider if it's not better to use an embedded db like SqLite, Sql Server CE or similar ones and have an xml export option instead.