In general I would say no: stick with a class with properties. However, there are circumstances that might call for something like this - in particular on compact-framework (think: XNA) or micro-framework. In both cases the GC is very different, and object allocations (and non-deterministic collection) may have a significant impact on the application.
In such cases it is not unheard of to see more structs come into play, and the ref
avoids the common "lost update" problems (in most .NET, structs should be immutable; again, XNA does have some scenarios that make it tempting to break this rule). Another approach of course is to accept and return the data - then the type can be immutable.
If you mean the performance of passing the object; then you have to profile on the exact setup you intend using. x86 vs x64 is the obvious difference, but there are more. For example, using ref
demands that a value is in either a field or a local variable - but many of the JIT performance tweaks on structs work on the head of the stack - meaning you might have a lot more "ldloc" / "stloc" than you strictly need. You also introduce an extra dereference.