For the record here is the disassembled version of the sector image. I figured I might as well spam this thread with another post.
00007C00 31C0 xor ax,ax
00007C02 8ED8 mov ds,ax
00007C04 8EC0 mov es,ax
00007C06 8ED0 mov ss,ax
00007C08 8EE8 mov gs,ax
00007C0A BC007C mov sp,0x7c00
00007C0D B800B8 mov ax,0xb800
00007C10 8EE0 mov fs,ax
00007C12 FC cld
00007C13 E83400 call word 0x7c4a
00007C16 E83100 call word 0x7c4a
00007C19 64C606000038 mov byte [fs:0x0],0x38
00007C1F 64C606010001 mov byte [fs:0x1],0x1
00007C25 64C606020030 mov byte [fs:0x2],0x30
00007C2B 64C606030001 mov byte [fs:0x3],0x1
00007C31 64C606040038 mov byte [fs:0x4],0x38
00007C37 64C606050001 mov byte [fs:0x5],0x1
00007C3D 64C606060036 mov byte [fs:0x6],0x36
00007C43 64C606070001 mov byte [fs:0x7],0x1
00007C49 EBFE jmp short 0x7c49
00007C4B 90 nop
00007C4C C8020000 enter 0x2,0x0
00007C50 50 push ax
00007C51 E492 in al,0x92
00007C53 0C02 or al,0x2
00007C55 E692 out 0x92,al
00007C57 58 pop ax
00007C58 C9 leave
00007C59 C3 ret
00007C5A 90 nop
00007C5B 90 nop
Notice that the (relative!) calls fall two bytes short. I can only assume that this is an issue with the linker script, though to be honest I'm not sufficiently knowledgeable about that particular area of black magic to tell you what.
As for workarounds I suspect that this will work just fine if you link the image as a single object file. That should also get rid of the 32-bit alignment for you.
(Complete binary and disassembly at https://sites.google.com/site/doynax/gary_sector.zip)