So touch wood all seems fine now. Thanks for the help. And my advice to anyone having a similar crash to desktop issue would be to try when installing the game, install it into a new location! ((aka not the default steam folder)) The error below by the way seems to have been what was causing the problem
TextXML Parse Failed. Attempting binary... File: C:/Users/Craig/AppData/Local/Temp/Obsidian Entertainment/Pillars of Eternity\TempSaveData Reason: Polenter.Serialization.Core.DeserializingException: An error occured during the deserialization. Details are in the inner exception. ---> System.Xml.XmlException: invalid data.
at System.Xml.XmlStreamReader.Read (System.Char[] dest_buffer, Int32 index, Int32 count) [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.ReadTextReader (Int32 remained) [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.PeekChar () [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.ReadContent () [0x00000] in <filename unknown>:0
at Mono.Xml2.XmlTextReader.Read () [0x00000] in <filename unknown>:0
at System.Xml.XmlTextReader.Read () [0x00000] in <filename unknown>:0
at Mono.Xml.XmlFilterReader.Read () [0x00000] in <filename unknown>:0
at Polenter.Serialization.Advanced.DefaultXmlReader.ReadElement () [0x00000] in <filename unknown>:0
at Polenter.Serialization.Advanced.XmlPropertyDeserializer.Deserialize () [0x00000] in <filename unknown>:0
at Polenter.Serialization.SharpSerializer.Deserialize (System.IO.Stream stream) [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at Polenter.Serialization.SharpSerializer.Deserialize (System.IO.Stream stream) [0x00000] in <filename unknown>:0
at (wrapper synchronized) Polenter.Serialization.SharpSerializer:Deserialize (System.IO.Stream)
at Polenter.Serialization.SharpSerializer.Deserialize (System.String filename) [0x00000] in <filename unknown>:0
at (wrapper synchronized) Polenter.Serialization.SharpSerializer:Deserialize (string)
at SaveGameInfo.Load (System.String filePath, SizeStyle saveGameInfoStyle) [0x00000] in <filename unknown>:0